From 64ac9016dc994885ade3bc917f5e7c9e6446eb3e Mon Sep 17 00:00:00 2001 From: PatriceJiang <397136899@qq.com> Date: Mon, 25 May 2020 11:42:24 +0800 Subject: [PATCH 1/2] remove google-breakpad --- android/Android.mk | 108 - sources/CMakeLists.txt | 2 +- sources/google-breakpad/CMakeLists.txt | 28 - .../android/google_breakpad/Android.mk | 102 - .../crash_generation_client.cc | 105 - .../crash_generation_client.h | 65 - .../src/client/linux/data/linux-gate-amd.sym | 3 - .../client/linux/data/linux-gate-intel.sym | 3 - .../linux/dump_writer_common/mapping_info.h | 61 - .../dump_writer_common/raw_context_cpu.h | 53 - .../linux/dump_writer_common/thread_info.cc | 305 -- .../linux/dump_writer_common/thread_info.h | 91 - .../dump_writer_common/ucontext_reader.cc | 259 -- .../dump_writer_common/ucontext_reader.h | 64 - .../client/linux/handler/exception_handler.cc | 765 ---- .../client/linux/handler/exception_handler.h | 278 -- .../linux/handler/microdump_extra_info.h | 48 - .../linux/handler/minidump_descriptor.cc | 87 - .../linux/handler/minidump_descriptor.h | 149 - .../src/client/linux/log/log.cc | 84 - .../src/client/linux/log/log.h | 55 - .../microdump_writer/microdump_writer.cc | 439 -- .../linux/microdump_writer/microdump_writer.h | 65 - .../client/linux/minidump_writer/cpu_set.h | 144 - .../linux/minidump_writer/directory_reader.h | 106 - .../linux/minidump_writer/line_reader.h | 131 - .../minidump_writer/linux_core_dumper.cc | 258 -- .../linux/minidump_writer/linux_core_dumper.h | 125 - .../linux/minidump_writer/linux_dumper.cc | 606 --- .../linux/minidump_writer/linux_dumper.h | 264 -- .../minidump_writer/linux_ptrace_dumper.cc | 355 -- .../minidump_writer/linux_ptrace_dumper.h | 92 - .../linux/minidump_writer/minidump_writer.cc | 1367 ------ .../linux/minidump_writer/minidump_writer.h | 124 - .../minidump_writer/proc_cpuinfo_reader.h | 130 - .../src/client/minidump_file_writer-inl.h | 97 - .../src/client/minidump_file_writer.cc | 350 -- .../src/client/minidump_file_writer.h | 272 -- .../src/common/android/breakpad_getcontext.S | 489 -- .../src/common/android/include/elf.h | 168 - .../src/common/android/include/link.h | 71 - .../src/common/android/include/sgidefs.h | 41 - .../src/common/android/include/stab.h | 100 - .../src/common/android/include/sys/procfs.h | 124 - .../src/common/android/include/sys/signal.h | 35 - .../src/common/android/include/sys/user.h | 81 - .../src/common/android/include/ucontext.h | 56 - .../src/common/android/ucontext_constants.h | 144 - .../google-breakpad/src/common/basictypes.h | 58 - .../google-breakpad/src/common/byte_cursor.h | 265 -- .../google-breakpad/src/common/convert_UTF.c | 554 --- .../google-breakpad/src/common/convert_UTF.h | 164 - .../src/common/linux/eintr_wrapper.h | 58 - .../src/common/linux/elf_core_dump.cc | 179 - .../src/common/linux/elf_core_dump.h | 148 - .../src/common/linux/elf_gnu_compat.h | 46 - .../src/common/linux/elfutils-inl.h | 74 - .../src/common/linux/elfutils.cc | 194 - .../src/common/linux/elfutils.h | 118 - .../src/common/linux/file_id.cc | 191 - .../src/common/linux/file_id.h | 78 - .../src/common/linux/guid_creator.cc | 104 - .../src/common/linux/guid_creator.h | 48 - .../src/common/linux/ignore_ret.h | 40 - .../src/common/linux/linux_libc_support.cc | 237 - .../src/common/linux/linux_libc_support.h | 96 - .../src/common/linux/memory_mapped_file.cc | 118 - .../src/common/linux/memory_mapped_file.h | 87 - .../src/common/linux/safe_readlink.cc | 53 - .../src/common/linux/safe_readlink.h | 65 - sources/google-breakpad/src/common/md5.cc | 251 - sources/google-breakpad/src/common/md5.h | 27 - sources/google-breakpad/src/common/memory.h | 212 - .../google-breakpad/src/common/memory_range.h | 145 - .../src/common/minidump_type_helper.h | 56 - sources/google-breakpad/src/common/module.cc | 319 -- sources/google-breakpad/src/common/module.h | 336 -- .../google-breakpad/src/common/scoped_ptr.h | 404 -- .../src/common/string_conversion.cc | 155 - .../src/common/string_conversion.h | 68 - .../google-breakpad/src/common/symbol_data.h | 42 - .../src/common/using_std_string.h | 65 - sources/google-breakpad/src/config.h.in | 76 - .../google_breakpad/common/breakpad_types.h | 68 - .../common/minidump_cpu_amd64.h | 235 - .../google_breakpad/common/minidump_cpu_arm.h | 151 - .../common/minidump_cpu_arm64.h | 140 - .../common/minidump_cpu_mips.h | 176 - .../google_breakpad/common/minidump_cpu_ppc.h | 168 - .../common/minidump_cpu_ppc64.h | 134 - .../common/minidump_cpu_sparc.h | 163 - .../google_breakpad/common/minidump_cpu_x86.h | 174 - .../common/minidump_exception_linux.h | 87 - .../common/minidump_exception_mac.h | 205 - .../common/minidump_exception_ps3.h | 67 - .../common/minidump_exception_solaris.h | 94 - .../common/minidump_exception_win32.h | 2261 --------- .../google_breakpad/common/minidump_format.h | 984 ---- .../google_breakpad/common/minidump_size.h | 113 - .../third_party/lss/linux_syscall_support.h | 4037 ----------------- sources/pvmp3dec/Android.mk | 64 - sources/tremolo/Android.mk | 44 - sources/tremolo/CleanSpec.mk | 49 - 103 files changed, 1 insertion(+), 23493 deletions(-) delete mode 100644 android/Android.mk delete mode 100644 sources/google-breakpad/CMakeLists.txt delete mode 100644 sources/google-breakpad/android/google_breakpad/Android.mk delete mode 100644 sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.cc delete mode 100644 sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.h delete mode 100644 sources/google-breakpad/src/client/linux/data/linux-gate-amd.sym delete mode 100644 sources/google-breakpad/src/client/linux/data/linux-gate-intel.sym delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/mapping_info.h delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.cc delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.h delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc delete mode 100644 sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h delete mode 100644 sources/google-breakpad/src/client/linux/handler/exception_handler.cc delete mode 100644 sources/google-breakpad/src/client/linux/handler/exception_handler.h delete mode 100644 sources/google-breakpad/src/client/linux/handler/microdump_extra_info.h delete mode 100644 sources/google-breakpad/src/client/linux/handler/minidump_descriptor.cc delete mode 100644 sources/google-breakpad/src/client/linux/handler/minidump_descriptor.h delete mode 100644 sources/google-breakpad/src/client/linux/log/log.cc delete mode 100644 sources/google-breakpad/src/client/linux/log/log.h delete mode 100644 sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc delete mode 100644 sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/cpu_set.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/directory_reader.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/line_reader.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.cc delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.h delete mode 100644 sources/google-breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h delete mode 100644 sources/google-breakpad/src/client/minidump_file_writer-inl.h delete mode 100644 sources/google-breakpad/src/client/minidump_file_writer.cc delete mode 100644 sources/google-breakpad/src/client/minidump_file_writer.h delete mode 100644 sources/google-breakpad/src/common/android/breakpad_getcontext.S delete mode 100644 sources/google-breakpad/src/common/android/include/elf.h delete mode 100644 sources/google-breakpad/src/common/android/include/link.h delete mode 100644 sources/google-breakpad/src/common/android/include/sgidefs.h delete mode 100644 sources/google-breakpad/src/common/android/include/stab.h delete mode 100644 sources/google-breakpad/src/common/android/include/sys/procfs.h delete mode 100644 sources/google-breakpad/src/common/android/include/sys/signal.h delete mode 100644 sources/google-breakpad/src/common/android/include/sys/user.h delete mode 100644 sources/google-breakpad/src/common/android/include/ucontext.h delete mode 100644 sources/google-breakpad/src/common/android/ucontext_constants.h delete mode 100644 sources/google-breakpad/src/common/basictypes.h delete mode 100644 sources/google-breakpad/src/common/byte_cursor.h delete mode 100644 sources/google-breakpad/src/common/convert_UTF.c delete mode 100644 sources/google-breakpad/src/common/convert_UTF.h delete mode 100644 sources/google-breakpad/src/common/linux/eintr_wrapper.h delete mode 100644 sources/google-breakpad/src/common/linux/elf_core_dump.cc delete mode 100644 sources/google-breakpad/src/common/linux/elf_core_dump.h delete mode 100644 sources/google-breakpad/src/common/linux/elf_gnu_compat.h delete mode 100644 sources/google-breakpad/src/common/linux/elfutils-inl.h delete mode 100644 sources/google-breakpad/src/common/linux/elfutils.cc delete mode 100644 sources/google-breakpad/src/common/linux/elfutils.h delete mode 100644 sources/google-breakpad/src/common/linux/file_id.cc delete mode 100644 sources/google-breakpad/src/common/linux/file_id.h delete mode 100644 sources/google-breakpad/src/common/linux/guid_creator.cc delete mode 100644 sources/google-breakpad/src/common/linux/guid_creator.h delete mode 100644 sources/google-breakpad/src/common/linux/ignore_ret.h delete mode 100644 sources/google-breakpad/src/common/linux/linux_libc_support.cc delete mode 100644 sources/google-breakpad/src/common/linux/linux_libc_support.h delete mode 100644 sources/google-breakpad/src/common/linux/memory_mapped_file.cc delete mode 100644 sources/google-breakpad/src/common/linux/memory_mapped_file.h delete mode 100644 sources/google-breakpad/src/common/linux/safe_readlink.cc delete mode 100644 sources/google-breakpad/src/common/linux/safe_readlink.h delete mode 100644 sources/google-breakpad/src/common/md5.cc delete mode 100644 sources/google-breakpad/src/common/md5.h delete mode 100644 sources/google-breakpad/src/common/memory.h delete mode 100644 sources/google-breakpad/src/common/memory_range.h delete mode 100644 sources/google-breakpad/src/common/minidump_type_helper.h delete mode 100644 sources/google-breakpad/src/common/module.cc delete mode 100644 sources/google-breakpad/src/common/module.h delete mode 100644 sources/google-breakpad/src/common/scoped_ptr.h delete mode 100644 sources/google-breakpad/src/common/string_conversion.cc delete mode 100644 sources/google-breakpad/src/common/string_conversion.h delete mode 100644 sources/google-breakpad/src/common/symbol_data.h delete mode 100644 sources/google-breakpad/src/common/using_std_string.h delete mode 100644 sources/google-breakpad/src/config.h.in delete mode 100644 sources/google-breakpad/src/google_breakpad/common/breakpad_types.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_format.h delete mode 100644 sources/google-breakpad/src/google_breakpad/common/minidump_size.h delete mode 100644 sources/google-breakpad/src/third_party/lss/linux_syscall_support.h delete mode 100644 sources/pvmp3dec/Android.mk delete mode 100644 sources/tremolo/Android.mk delete mode 100644 sources/tremolo/CleanSpec.mk diff --git a/android/Android.mk b/android/Android.mk deleted file mode 100644 index c0d8d081..00000000 --- a/android/Android.mk +++ /dev/null @@ -1,108 +0,0 @@ -LOCAL_PATH := $(call my-dir) -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := cocos_zlib_static -LOCAL_MODULE_FILENAME := zlib -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libz.a - -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := cocos_jpeg_static -LOCAL_MODULE_FILENAME := jpeg -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libjpeg.a - -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := cocos_png_static -LOCAL_MODULE_FILENAME := png -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libpng.a - -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) - -ifeq ($(USE_TIFF),1) -LOCAL_MODULE := cocos_tiff_static -LOCAL_MODULE_FILENAME := tiff -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libtiff.a -include $(PREBUILT_STATIC_LIBRARY) -endif - -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := cocos_webp_static -LOCAL_MODULE_FILENAME := webp -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libwebp.a - -LOCAL_WHOLE_STATIC_LIBRARIES := cpufeatures - -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_CFLAGS := -DHAVE_NEON=1 -endif - -include $(PREBUILT_STATIC_LIBRARY) - -include $(CLEAR_VARS) - -LOCAL_MODULE := cocos_crypto_static -LOCAL_MODULE_FILENAME := crypto -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcrypto.a -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/include -include $(PREBUILT_STATIC_LIBRARY) - -include $(CLEAR_VARS) -LOCAL_MODULE := cocos_ssl_static -LOCAL_MODULE_FILENAME := ssl -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libssl.a -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/include -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := websockets_static -LOCAL_MODULE_FILENAME := libwebsockets_static -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libwebsockets.a - -LOCAL_CPPFLAGS := -D__STDC_LIMIT_MACROS=1 -LOCAL_EXPORT_CPPFLAGS := -D__STDC_LIMIT_MACROS=1 - -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) -LOCAL_MODULE := v8_inspector -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/v8/libinspector.a -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) -LOCAL_MODULE := v8_static -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/v8/libv8_monolith.a -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/include/v8 -ifeq ($(TARGET_ARCH),arm64) - LOCAL_EXPORT_CPPFLAGS := -DV8_COMPRESS_POINTERS - LOCAL_EXPORT_CFLAGS := -DV8_COMPRESS_POINTERS -endif -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -include $(CLEAR_VARS) - -LOCAL_MODULE := uv_static -LOCAL_MODULE_FILENAME := libuv -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libuv.a -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(TARGET_ARCH_ABI)/include/uv -include $(PREBUILT_STATIC_LIBRARY) - -#====================================== -#$(call import-module,android/cpufeatures) diff --git a/sources/CMakeLists.txt b/sources/CMakeLists.txt index c09e4d31..24ff00e9 100644 --- a/sources/CMakeLists.txt +++ b/sources/CMakeLists.txt @@ -78,4 +78,4 @@ endif() list(APPEND CC_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR} -) \ No newline at end of file +) diff --git a/sources/google-breakpad/CMakeLists.txt b/sources/google-breakpad/CMakeLists.txt deleted file mode 100644 index 452e04d5..00000000 --- a/sources/google-breakpad/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ - -add_library(google-breakpad - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/crash_generation/crash_generation_client.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/dump_writer_common/thread_info.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/dump_writer_common/ucontext_reader.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/handler/exception_handler.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/handler/minidump_descriptor.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/log/log.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/microdump_writer/microdump_writer.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/minidump_writer/linux_dumper.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/minidump_writer/linux_ptrace_dumper.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/linux/minidump_writer/minidump_writer.cc - ${CMAKE_CURRENT_LIST_DIR}/src/client/minidump_file_writer.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/android/breakpad_getcontext.S - ${CMAKE_CURRENT_LIST_DIR}/src/common/md5.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/string_conversion.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/elfutils.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/file_id.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/guid_creator.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/linux_libc_support.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/memory_mapped_file.cc - ${CMAKE_CURRENT_LIST_DIR}/src/common/linux/safe_readlink.cc -) - -target_include_directories(google-breakpad PRIVATE - ${CMAKE_CURRENT_LIST_DIR}/src - ${CMAKE_CURRENT_LIST_DIR}/src/common/android/include -) \ No newline at end of file diff --git a/sources/google-breakpad/android/google_breakpad/Android.mk b/sources/google-breakpad/android/google_breakpad/Android.mk deleted file mode 100644 index 61e1aa54..00000000 --- a/sources/google-breakpad/android/google_breakpad/Android.mk +++ /dev/null @@ -1,102 +0,0 @@ -# Copyright (c) 2012, Google Inc. -# 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. -# * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -# OWNER 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. - -# ndk-build module definition for the Google Breakpad client library -# -# To use this file, do the following: -# -# 1/ Include this file from your own Android.mk, either directly -# or with through the NDK's import-module function. -# -# 2/ Use the client static library in your project with: -# -# LOCAL_STATIC_LIBRARIES += breakpad_client -# -# 3/ In your source code, include "src/client/linux/exception_handler.h" -# and use the Linux instructions to use it. -# -# This module works with either the STLport or GNU libstdc++, but you need -# to select one in your Application.mk -# - -# The top Google Breakpad directory. -# We assume this Android.mk to be under 'android/google_breakpad' - -LOCAL_PATH := $(call my-dir)/../.. - -# Defube the client library module, as a simple static library that -# exports the right include path / linker flags to its users. - -include $(CLEAR_VARS) - -LOCAL_MODULE := breakpad_client - -LOCAL_CPP_EXTENSION := .cc - -# Breakpad uses inline ARM assembly that requires the library -# to be built in ARM mode. Otherwise, the build will fail with -# cryptic assembler messages like: -# Compile++ thumb : google_breakpad_client <= crash_generation_client.cc -# /tmp/cc8aMSoD.s: Assembler messages: -# /tmp/cc8aMSoD.s:132: Error: invalid immediate: 288 is out of range -# /tmp/cc8aMSoD.s:244: Error: invalid immediate: 296 is out of range -LOCAL_ARM_MODE := arm - -# List of client source files, directly taken from Makefile.am -LOCAL_SRC_FILES := \ - src/client/linux/crash_generation/crash_generation_client.cc \ - src/client/linux/dump_writer_common/thread_info.cc \ - src/client/linux/dump_writer_common/ucontext_reader.cc \ - src/client/linux/handler/exception_handler.cc \ - src/client/linux/handler/minidump_descriptor.cc \ - src/client/linux/log/log.cc \ - src/client/linux/microdump_writer/microdump_writer.cc \ - src/client/linux/minidump_writer/linux_dumper.cc \ - src/client/linux/minidump_writer/linux_ptrace_dumper.cc \ - src/client/linux/minidump_writer/minidump_writer.cc \ - src/client/minidump_file_writer.cc \ - src/common/android/breakpad_getcontext.S \ - src/common/md5.cc \ - src/common/string_conversion.cc \ - src/common/linux/elfutils.cc \ - src/common/linux/file_id.cc \ - src/common/linux/guid_creator.cc \ - src/common/linux/linux_libc_support.cc \ - src/common/linux/memory_mapped_file.cc \ - src/common/linux/safe_readlink.cc - -LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/common/android/include \ - $(LOCAL_PATH)/src - -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) -LOCAL_EXPORT_LDLIBS := -llog - -include $(BUILD_STATIC_LIBRARY) - -# Done. \ No newline at end of file diff --git a/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.cc b/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.cc deleted file mode 100644 index d8bfbbad..00000000 --- a/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.cc +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "client/linux/crash_generation/crash_generation_client.h" - -#include -#include -#include - -#include - -#include "common/linux/eintr_wrapper.h" -#include "common/linux/ignore_ret.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -namespace { - -class CrashGenerationClientImpl : public CrashGenerationClient { - public: - explicit CrashGenerationClientImpl(int server_fd) : server_fd_(server_fd) {} - virtual ~CrashGenerationClientImpl() {} - - virtual bool RequestDump(const void* blob, size_t blob_size) { - int fds[2]; - if (sys_pipe(fds) < 0) - return false; - static const unsigned kControlMsgSize = CMSG_SPACE(sizeof(int)); - - struct kernel_iovec iov; - iov.iov_base = const_cast(blob); - iov.iov_len = blob_size; - - struct kernel_msghdr msg = { 0 }; - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - char cmsg[kControlMsgSize] = ""; - msg.msg_control = cmsg; - msg.msg_controllen = sizeof(cmsg); - - struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg); - hdr->cmsg_level = SOL_SOCKET; - hdr->cmsg_type = SCM_RIGHTS; - hdr->cmsg_len = CMSG_LEN(sizeof(int)); - int* p = reinterpret_cast(CMSG_DATA(hdr)); - *p = fds[1]; - - ssize_t ret = HANDLE_EINTR(sys_sendmsg(server_fd_, &msg, 0)); - sys_close(fds[1]); - if (ret < 0) { - sys_close(fds[0]); - return false; - } - - // Wait for an ACK from the server. - char b; - IGNORE_RET(HANDLE_EINTR(sys_read(fds[0], &b, 1))); - sys_close(fds[0]); - - return true; - } - - private: - int server_fd_; - - DISALLOW_COPY_AND_ASSIGN(CrashGenerationClientImpl); -}; - -} // namespace - -// static -CrashGenerationClient* CrashGenerationClient::TryCreate(int server_fd) { - if (server_fd < 0) - return NULL; - return new CrashGenerationClientImpl(server_fd); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.h b/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.h deleted file mode 100644 index 4e68424a..00000000 --- a/sources/google-breakpad/src/client/linux/crash_generation/crash_generation_client.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_ -#define CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_ - -#include "common/basictypes.h" - -#include - -namespace google_breakpad { - -// CrashGenerationClient is an interface for implementing out-of-process crash -// dumping. The default implementation, accessed via the TryCreate() factory, -// works in conjunction with the CrashGenerationServer to generate a minidump -// via a remote process. -class CrashGenerationClient { - public: - CrashGenerationClient() {} - virtual ~CrashGenerationClient() {} - - // Request the crash server to generate a dump. |blob| is an opaque - // CrashContext pointer from exception_handler.h. - // Returns true if the dump was successful; false otherwise. - virtual bool RequestDump(const void* blob, size_t blob_size) = 0; - - // Returns a new CrashGenerationClient if |server_fd| is valid and - // connects to a CrashGenerationServer. Otherwise, return NULL. - // The returned CrashGenerationClient* is owned by the caller of - // this function. - static CrashGenerationClient* TryCreate(int server_fd); - - private: - DISALLOW_COPY_AND_ASSIGN(CrashGenerationClient); -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_CRASH_GENERATION_CRASH_GENERATION_CLIENT_H_ diff --git a/sources/google-breakpad/src/client/linux/data/linux-gate-amd.sym b/sources/google-breakpad/src/client/linux/data/linux-gate-amd.sym deleted file mode 100644 index e042a5ec..00000000 --- a/sources/google-breakpad/src/client/linux/data/linux-gate-amd.sym +++ /dev/null @@ -1,3 +0,0 @@ -MODULE Linux x86 B8CFDE93002D54DA1900A40AA1BD67690 linux-gate.so -PUBLIC 400 0 __kernel_vsyscall -STACK WIN 4 400 100 1 1 0 0 0 0 0 1 diff --git a/sources/google-breakpad/src/client/linux/data/linux-gate-intel.sym b/sources/google-breakpad/src/client/linux/data/linux-gate-intel.sym deleted file mode 100644 index c209c237..00000000 --- a/sources/google-breakpad/src/client/linux/data/linux-gate-intel.sym +++ /dev/null @@ -1,3 +0,0 @@ -MODULE Linux x86 4FBDA58B5A1DF5A379E3CF19A235EA090 linux-gate.so -PUBLIC 400 0 __kernel_vsyscall -STACK WIN 4 400 200 3 3 0 0 0 0 0 1 \ No newline at end of file diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/mapping_info.h b/sources/google-breakpad/src/client/linux/dump_writer_common/mapping_info.h deleted file mode 100644 index 5f247cfd..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/mapping_info.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_ -#define CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_ - -#include -#include -#include - -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -// One of these is produced for each mapping in the process (i.e. line in -// /proc/$x/maps). -struct MappingInfo { - uintptr_t start_addr; - size_t size; - size_t offset; // offset into the backed file. - bool exec; // true if the mapping has the execute bit set. - char name[NAME_MAX]; -}; - -struct MappingEntry { - MappingInfo first; - uint8_t second[sizeof(MDGUID)]; -}; - -// A list of -typedef std::list MappingList; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_DUMP_WRITER_COMMON_MAPPING_INFO_H_ diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h b/sources/google-breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h deleted file mode 100644 index e2ef45df..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H -#define CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H - -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -#if defined(__i386__) -typedef MDRawContextX86 RawContextCPU; -#elif defined(__x86_64) -typedef MDRawContextAMD64 RawContextCPU; -#elif defined(__ARM_EABI__) -typedef MDRawContextARM RawContextCPU; -#elif defined(__aarch64__) -typedef MDRawContextARM64 RawContextCPU; -#elif defined(__mips__) -typedef MDRawContextMIPS RawContextCPU; -#else -#error "This code has not been ported to your platform yet." -#endif - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_DUMP_WRITER_COMMON_RAW_CONTEXT_CPU_H diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.cc b/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.cc deleted file mode 100644 index 0a1041d6..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.cc +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "client/linux/dump_writer_common/thread_info.h" - -#include -#include - -#include "common/linux/linux_libc_support.h" -#include "google_breakpad/common/minidump_format.h" - -namespace { - -#if defined(__i386__) -// Write a uint16_t to memory -// out: memory location to write to -// v: value to write. -void U16(void* out, uint16_t v) { - my_memcpy(out, &v, sizeof(v)); -} - -// Write a uint32_t to memory -// out: memory location to write to -// v: value to write. -void U32(void* out, uint32_t v) { - my_memcpy(out, &v, sizeof(v)); -} -#endif - -} - -namespace google_breakpad { - -#if defined(__i386__) - -uintptr_t ThreadInfo::GetInstructionPointer() const { - return regs.eip; -} - -void ThreadInfo::FillCPUContext(RawContextCPU* out) const { - out->context_flags = MD_CONTEXT_X86_ALL; - - out->dr0 = dregs[0]; - out->dr1 = dregs[1]; - out->dr2 = dregs[2]; - out->dr3 = dregs[3]; - // 4 and 5 deliberatly omitted because they aren't included in the minidump - // format. - out->dr6 = dregs[6]; - out->dr7 = dregs[7]; - - out->gs = regs.xgs; - out->fs = regs.xfs; - out->es = regs.xes; - out->ds = regs.xds; - - out->edi = regs.edi; - out->esi = regs.esi; - out->ebx = regs.ebx; - out->edx = regs.edx; - out->ecx = regs.ecx; - out->eax = regs.eax; - - out->ebp = regs.ebp; - out->eip = regs.eip; - out->cs = regs.xcs; - out->eflags = regs.eflags; - out->esp = regs.esp; - out->ss = regs.xss; - - out->float_save.control_word = fpregs.cwd; - out->float_save.status_word = fpregs.swd; - out->float_save.tag_word = fpregs.twd; - out->float_save.error_offset = fpregs.fip; - out->float_save.error_selector = fpregs.fcs; - out->float_save.data_offset = fpregs.foo; - out->float_save.data_selector = fpregs.fos; - - // 8 registers * 10 bytes per register. - my_memcpy(out->float_save.register_area, fpregs.st_space, 10 * 8); - - // This matches the Intel fpsave format. - U16(out->extended_registers + 0, fpregs.cwd); - U16(out->extended_registers + 2, fpregs.swd); - U16(out->extended_registers + 4, fpregs.twd); - U16(out->extended_registers + 6, fpxregs.fop); - U32(out->extended_registers + 8, fpxregs.fip); - U16(out->extended_registers + 12, fpxregs.fcs); - U32(out->extended_registers + 16, fpregs.foo); - U16(out->extended_registers + 20, fpregs.fos); - U32(out->extended_registers + 24, fpxregs.mxcsr); - - my_memcpy(out->extended_registers + 32, &fpxregs.st_space, 128); - my_memcpy(out->extended_registers + 160, &fpxregs.xmm_space, 128); -} - -#elif defined(__x86_64) - -uintptr_t ThreadInfo::GetInstructionPointer() const { - return regs.rip; -} - -void ThreadInfo::FillCPUContext(RawContextCPU* out) const { - out->context_flags = MD_CONTEXT_AMD64_FULL | - MD_CONTEXT_AMD64_SEGMENTS; - - out->cs = regs.cs; - - out->ds = regs.ds; - out->es = regs.es; - out->fs = regs.fs; - out->gs = regs.gs; - - out->ss = regs.ss; - out->eflags = regs.eflags; - - out->dr0 = dregs[0]; - out->dr1 = dregs[1]; - out->dr2 = dregs[2]; - out->dr3 = dregs[3]; - // 4 and 5 deliberatly omitted because they aren't included in the minidump - // format. - out->dr6 = dregs[6]; - out->dr7 = dregs[7]; - - out->rax = regs.rax; - out->rcx = regs.rcx; - out->rdx = regs.rdx; - out->rbx = regs.rbx; - - out->rsp = regs.rsp; - - out->rbp = regs.rbp; - out->rsi = regs.rsi; - out->rdi = regs.rdi; - out->r8 = regs.r8; - out->r9 = regs.r9; - out->r10 = regs.r10; - out->r11 = regs.r11; - out->r12 = regs.r12; - out->r13 = regs.r13; - out->r14 = regs.r14; - out->r15 = regs.r15; - - out->rip = regs.rip; - - out->flt_save.control_word = fpregs.cwd; - out->flt_save.status_word = fpregs.swd; - out->flt_save.tag_word = fpregs.ftw; - out->flt_save.error_opcode = fpregs.fop; - out->flt_save.error_offset = fpregs.rip; - out->flt_save.error_selector = 0; // We don't have this. - out->flt_save.data_offset = fpregs.rdp; - out->flt_save.data_selector = 0; // We don't have this. - out->flt_save.mx_csr = fpregs.mxcsr; - out->flt_save.mx_csr_mask = fpregs.mxcr_mask; - - my_memcpy(&out->flt_save.float_registers, &fpregs.st_space, 8 * 16); - my_memcpy(&out->flt_save.xmm_registers, &fpregs.xmm_space, 16 * 16); -} - -#elif defined(__ARM_EABI__) - -uintptr_t ThreadInfo::GetInstructionPointer() const { - return regs.uregs[15]; -} - -void ThreadInfo::FillCPUContext(RawContextCPU* out) const { - out->context_flags = MD_CONTEXT_ARM_FULL; - - for (int i = 0; i < MD_CONTEXT_ARM_GPR_COUNT; ++i) - out->iregs[i] = regs.uregs[i]; - // No CPSR register in ThreadInfo(it's not accessible via ptrace) - out->cpsr = 0; -#if !defined(__ANDROID__) - out->float_save.fpscr = fpregs.fpsr | - (static_cast(fpregs.fpcr) << 32); - // TODO: sort this out, actually collect floating point registers - my_memset(&out->float_save.regs, 0, sizeof(out->float_save.regs)); - my_memset(&out->float_save.extra, 0, sizeof(out->float_save.extra)); -#endif -} - -#elif defined(__aarch64__) - -uintptr_t ThreadInfo::GetInstructionPointer() const { - return regs.pc; -} - -void ThreadInfo::FillCPUContext(RawContextCPU* out) const { - out->context_flags = MD_CONTEXT_ARM64_FULL; - - out->cpsr = static_cast(regs.pstate); - for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i) - out->iregs[i] = regs.regs[i]; - out->iregs[MD_CONTEXT_ARM64_REG_SP] = regs.sp; - out->iregs[MD_CONTEXT_ARM64_REG_PC] = regs.pc; - - out->float_save.fpsr = fpregs.fpsr; - out->float_save.fpcr = fpregs.fpcr; - my_memcpy(&out->float_save.regs, &fpregs.vregs, - MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16); -} - -#elif defined(__mips__) - -uintptr_t ThreadInfo::GetInstructionPointer() const { - return mcontext.pc; -} - -void ThreadInfo::FillCPUContext(RawContextCPU* out) const { -#if _MIPS_SIM == _ABI64 - out->context_flags = MD_CONTEXT_MIPS64_FULL; -#elif _MIPS_SIM == _ABIO32 - out->context_flags = MD_CONTEXT_MIPS_FULL; -#else -# error "This mips ABI is currently not supported (n32)" -#endif - - for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i) - out->iregs[i] = mcontext.gregs[i]; - - out->mdhi = mcontext.mdhi; - out->mdlo = mcontext.mdlo; - out->dsp_control = mcontext.dsp; - - out->hi[0] = mcontext.hi1; - out->lo[0] = mcontext.lo1; - out->hi[1] = mcontext.hi2; - out->lo[1] = mcontext.lo2; - out->hi[2] = mcontext.hi3; - out->lo[2] = mcontext.lo3; - - out->epc = mcontext.pc; - out->badvaddr = 0; // Not stored in mcontext - out->status = 0; // Not stored in mcontext - out->cause = 0; // Not stored in mcontext - - for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) - out->float_save.regs[i] = mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs; - - out->float_save.fpcsr = mcontext.fpc_csr; -#if _MIPS_SIM == _ABIO32 - out->float_save.fir = mcontext.fpc_eir; -#endif -} -#endif // __mips__ - -void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) { - assert(gp_regs || size); -#if defined(__mips__) - if (gp_regs) - *gp_regs = mcontext.gregs; - if (size) - *size = sizeof(mcontext.gregs); -#else - if (gp_regs) - *gp_regs = ®s; - if (size) - *size = sizeof(regs); -#endif -} - -void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) { - assert(fp_regs || size); -#if defined(__mips__) - if (fp_regs) - *fp_regs = &mcontext.fpregs; - if (size) - *size = sizeof(mcontext.fpregs); -#else - if (fp_regs) - *fp_regs = &fpregs; - if (size) - *size = sizeof(fpregs); -#endif -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.h b/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.h deleted file mode 100644 index 99093d2e..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/thread_info.h +++ /dev/null @@ -1,91 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_ -#define CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_ - -#include -#include - -#include "client/linux/dump_writer_common/raw_context_cpu.h" -#include "common/memory.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -#if defined(__i386) || defined(__x86_64) -typedef __typeof__(((struct user*) 0)->u_debugreg[0]) debugreg_t; -#endif - -// We produce one of these structures for each thread in the crashed process. -struct ThreadInfo { - pid_t tgid; // thread group id - pid_t ppid; // parent process - - uintptr_t stack_pointer; // thread stack pointer - - -#if defined(__i386) || defined(__x86_64) - user_regs_struct regs; - user_fpregs_struct fpregs; - static const unsigned kNumDebugRegisters = 8; - debugreg_t dregs[8]; -#if defined(__i386) - user_fpxregs_struct fpxregs; -#endif // defined(__i386) - -#elif defined(__ARM_EABI__) - // Mimicking how strace does this(see syscall.c, search for GETREGS) - struct user_regs regs; - struct user_fpregs fpregs; -#elif defined(__aarch64__) - // Use the structures defined in - struct user_regs_struct regs; - struct user_fpsimd_struct fpregs; -#elif defined(__mips__) - // Use the structure defined in . - mcontext_t mcontext; -#endif - - // Returns the instruction pointer (platform-dependent impl.). - uintptr_t GetInstructionPointer() const; - - // Fills a RawContextCPU using the context in the ThreadInfo object. - void FillCPUContext(RawContextCPU* out) const; - - // Returns the pointer and size of general purpose register area. - void GetGeneralPurposeRegisters(void** gp_regs, size_t* size); - - // Returns the pointer and size of float point register area. - void GetFloatingPointRegisters(void** fp_regs, size_t* size); -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_DUMP_WRITER_COMMON_THREAD_INFO_H_ diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc deleted file mode 100644 index c80724dd..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc +++ /dev/null @@ -1,259 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "client/linux/dump_writer_common/ucontext_reader.h" - -#include "common/linux/linux_libc_support.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -// Minidump defines register structures which are different from the raw -// structures which we get from the kernel. These are platform specific -// functions to juggle the ucontext and user structures into minidump format. - -#if defined(__i386__) - -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { - return uc->uc_mcontext.gregs[REG_ESP]; -} - -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { - return uc->uc_mcontext.gregs[REG_EIP]; -} - -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - const struct _libc_fpstate* fp) { - const greg_t* regs = uc->uc_mcontext.gregs; - - out->context_flags = MD_CONTEXT_X86_FULL | - MD_CONTEXT_X86_FLOATING_POINT; - - out->gs = regs[REG_GS]; - out->fs = regs[REG_FS]; - out->es = regs[REG_ES]; - out->ds = regs[REG_DS]; - - out->edi = regs[REG_EDI]; - out->esi = regs[REG_ESI]; - out->ebx = regs[REG_EBX]; - out->edx = regs[REG_EDX]; - out->ecx = regs[REG_ECX]; - out->eax = regs[REG_EAX]; - - out->ebp = regs[REG_EBP]; - out->eip = regs[REG_EIP]; - out->cs = regs[REG_CS]; - out->eflags = regs[REG_EFL]; - out->esp = regs[REG_UESP]; - out->ss = regs[REG_SS]; - - out->float_save.control_word = fp->cw; - out->float_save.status_word = fp->sw; - out->float_save.tag_word = fp->tag; - out->float_save.error_offset = fp->ipoff; - out->float_save.error_selector = fp->cssel; - out->float_save.data_offset = fp->dataoff; - out->float_save.data_selector = fp->datasel; - - // 8 registers * 10 bytes per register. - my_memcpy(out->float_save.register_area, fp->_st, 10 * 8); -} - -#elif defined(__x86_64) - -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { - return uc->uc_mcontext.gregs[REG_RSP]; -} - -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { - return uc->uc_mcontext.gregs[REG_RIP]; -} - -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - const struct _libc_fpstate* fpregs) { - const greg_t* regs = uc->uc_mcontext.gregs; - - out->context_flags = MD_CONTEXT_AMD64_FULL; - - out->cs = regs[REG_CSGSFS] & 0xffff; - - out->fs = (regs[REG_CSGSFS] >> 32) & 0xffff; - out->gs = (regs[REG_CSGSFS] >> 16) & 0xffff; - - out->eflags = regs[REG_EFL]; - - out->rax = regs[REG_RAX]; - out->rcx = regs[REG_RCX]; - out->rdx = regs[REG_RDX]; - out->rbx = regs[REG_RBX]; - - out->rsp = regs[REG_RSP]; - out->rbp = regs[REG_RBP]; - out->rsi = regs[REG_RSI]; - out->rdi = regs[REG_RDI]; - out->r8 = regs[REG_R8]; - out->r9 = regs[REG_R9]; - out->r10 = regs[REG_R10]; - out->r11 = regs[REG_R11]; - out->r12 = regs[REG_R12]; - out->r13 = regs[REG_R13]; - out->r14 = regs[REG_R14]; - out->r15 = regs[REG_R15]; - - out->rip = regs[REG_RIP]; - - out->flt_save.control_word = fpregs->cwd; - out->flt_save.status_word = fpregs->swd; - out->flt_save.tag_word = fpregs->ftw; - out->flt_save.error_opcode = fpregs->fop; - out->flt_save.error_offset = fpregs->rip; - out->flt_save.data_offset = fpregs->rdp; - out->flt_save.error_selector = 0; // We don't have this. - out->flt_save.data_selector = 0; // We don't have this. - out->flt_save.mx_csr = fpregs->mxcsr; - out->flt_save.mx_csr_mask = fpregs->mxcr_mask; - my_memcpy(&out->flt_save.float_registers, &fpregs->_st, 8 * 16); - my_memcpy(&out->flt_save.xmm_registers, &fpregs->_xmm, 16 * 16); -} - -#elif defined(__ARM_EABI__) - -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { - return uc->uc_mcontext.arm_sp; -} - -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { - return uc->uc_mcontext.arm_pc; -} - -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { - out->context_flags = MD_CONTEXT_ARM_FULL; - - out->iregs[0] = uc->uc_mcontext.arm_r0; - out->iregs[1] = uc->uc_mcontext.arm_r1; - out->iregs[2] = uc->uc_mcontext.arm_r2; - out->iregs[3] = uc->uc_mcontext.arm_r3; - out->iregs[4] = uc->uc_mcontext.arm_r4; - out->iregs[5] = uc->uc_mcontext.arm_r5; - out->iregs[6] = uc->uc_mcontext.arm_r6; - out->iregs[7] = uc->uc_mcontext.arm_r7; - out->iregs[8] = uc->uc_mcontext.arm_r8; - out->iregs[9] = uc->uc_mcontext.arm_r9; - out->iregs[10] = uc->uc_mcontext.arm_r10; - - out->iregs[11] = uc->uc_mcontext.arm_fp; - out->iregs[12] = uc->uc_mcontext.arm_ip; - out->iregs[13] = uc->uc_mcontext.arm_sp; - out->iregs[14] = uc->uc_mcontext.arm_lr; - out->iregs[15] = uc->uc_mcontext.arm_pc; - - out->cpsr = uc->uc_mcontext.arm_cpsr; - - // TODO: fix this after fixing ExceptionHandler - out->float_save.fpscr = 0; - my_memset(&out->float_save.regs, 0, sizeof(out->float_save.regs)); - my_memset(&out->float_save.extra, 0, sizeof(out->float_save.extra)); -} - -#elif defined(__aarch64__) - -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { - return uc->uc_mcontext.sp; -} - -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { - return uc->uc_mcontext.pc; -} - -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - const struct fpsimd_context* fpregs) { - out->context_flags = MD_CONTEXT_ARM64_FULL; - - out->cpsr = static_cast(uc->uc_mcontext.pstate); - for (int i = 0; i < MD_CONTEXT_ARM64_REG_SP; ++i) - out->iregs[i] = uc->uc_mcontext.regs[i]; - out->iregs[MD_CONTEXT_ARM64_REG_SP] = uc->uc_mcontext.sp; - out->iregs[MD_CONTEXT_ARM64_REG_PC] = uc->uc_mcontext.pc; - - out->float_save.fpsr = fpregs->fpsr; - out->float_save.fpcr = fpregs->fpcr; - my_memcpy(&out->float_save.regs, &fpregs->vregs, - MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT * 16); -} - -#elif defined(__mips__) - -uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { - return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; -} - -uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { - return uc->uc_mcontext.pc; -} - -void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { -#if _MIPS_SIM == _ABI64 - out->context_flags = MD_CONTEXT_MIPS64_FULL; -#elif _MIPS_SIM == _ABIO32 - out->context_flags = MD_CONTEXT_MIPS_FULL; -#else -#error "This mips ABI is currently not supported (n32)" -#endif - - for (int i = 0; i < MD_CONTEXT_MIPS_GPR_COUNT; ++i) - out->iregs[i] = uc->uc_mcontext.gregs[i]; - - out->mdhi = uc->uc_mcontext.mdhi; - out->mdlo = uc->uc_mcontext.mdlo; - - out->hi[0] = uc->uc_mcontext.hi1; - out->hi[1] = uc->uc_mcontext.hi2; - out->hi[2] = uc->uc_mcontext.hi3; - out->lo[0] = uc->uc_mcontext.lo1; - out->lo[1] = uc->uc_mcontext.lo2; - out->lo[2] = uc->uc_mcontext.lo3; - out->dsp_control = uc->uc_mcontext.dsp; - - out->epc = uc->uc_mcontext.pc; - out->badvaddr = 0; // Not reported in signal context. - out->status = 0; // Not reported in signal context. - out->cause = 0; // Not reported in signal context. - - for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) - out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i]; - - out->float_save.fpcsr = uc->uc_mcontext.fpc_csr; -#if _MIPS_SIM == _ABIO32 - out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused. -#endif -} -#endif - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h deleted file mode 100644 index b6e77b4b..00000000 --- a/sources/google-breakpad/src/client/linux/dump_writer_common/ucontext_reader.h +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H -#define CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H - -#include -#include - -#include "client/linux/dump_writer_common/raw_context_cpu.h" -#include "common/memory.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -// Wraps platform-dependent implementations of accessors to ucontext structs. -struct UContextReader { - static uintptr_t GetStackPointer(const struct ucontext* uc); - - static uintptr_t GetInstructionPointer(const struct ucontext* uc); - - // Juggle a arch-specific ucontext into a minidump format - // out: the minidump structure - // info: the collection of register structures. -#if defined(__i386__) || defined(__x86_64) - static void FillCPUContext(RawContextCPU *out, const ucontext *uc, - const struct _libc_fpstate* fp); -#elif defined(__aarch64__) - static void FillCPUContext(RawContextCPU *out, const ucontext *uc, - const struct fpsimd_context* fpregs); -#else - static void FillCPUContext(RawContextCPU *out, const ucontext *uc); -#endif -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_DUMP_WRITER_COMMON_UCONTEXT_READER_H diff --git a/sources/google-breakpad/src/client/linux/handler/exception_handler.cc b/sources/google-breakpad/src/client/linux/handler/exception_handler.cc deleted file mode 100644 index 148d61f9..00000000 --- a/sources/google-breakpad/src/client/linux/handler/exception_handler.cc +++ /dev/null @@ -1,765 +0,0 @@ -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// The ExceptionHandler object installs signal handlers for a number of -// signals. We rely on the signal handler running on the thread which crashed -// in order to identify it. This is true of the synchronous signals (SEGV etc), -// but not true of ABRT. Thus, if you send ABRT to yourself in a program which -// uses ExceptionHandler, you need to use tgkill to direct it to the current -// thread. -// -// The signal flow looks like this: -// -// SignalHandler (uses a global stack of ExceptionHandler objects to find -// | one to handle the signal. If the first rejects it, try -// | the second etc...) -// V -// HandleSignal ----------------------------| (clones a new process which -// | | shares an address space with -// (wait for cloned | the crashed process. This -// process) | allows us to ptrace the crashed -// | | process) -// V V -// (set signal handler to ThreadEntry (static function to bounce -// SIG_DFL and rethrow, | back into the object) -// killing the crashed | -// process) V -// DoDump (writes minidump) -// | -// V -// sys_exit -// - -// This code is a little fragmented. Different functions of the ExceptionHandler -// class run in a number of different contexts. Some of them run in a normal -// context and are easy to code, others run in a compromised context and the -// restrictions at the top of minidump_writer.cc apply: no libc and use the -// alternative malloc. Each function should have comment above it detailing the -// context which it runs in. - -#include "client/linux/handler/exception_handler.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include - -#include "common/basictypes.h" -#include "common/linux/linux_libc_support.h" -#include "common/memory.h" -#include "client/linux/log/log.h" -#include "client/linux/microdump_writer/microdump_writer.h" -#include "client/linux/minidump_writer/linux_dumper.h" -#include "client/linux/minidump_writer/minidump_writer.h" -#include "common/linux/eintr_wrapper.h" -#include "third_party/lss/linux_syscall_support.h" - -#if defined(__ANDROID__) -#include "linux/sched.h" -#endif - -#ifndef PR_SET_PTRACER -#define PR_SET_PTRACER 0x59616d61 -#endif - -// A wrapper for the tgkill syscall: send a signal to a specific thread. -static int tgkill(pid_t tgid, pid_t tid, int sig) { - return syscall(__NR_tgkill, tgid, tid, sig); - return 0; -} - -namespace google_breakpad { - -namespace { -// The list of signals which we consider to be crashes. The default action for -// all these signals must be Core (see man 7 signal) because we rethrow the -// signal after handling it and expect that it'll be fatal. -const int kExceptionSignals[] = { - SIGSEGV, SIGABRT, SIGFPE, SIGILL, SIGBUS -}; -const int kNumHandledSignals = - sizeof(kExceptionSignals) / sizeof(kExceptionSignals[0]); -struct sigaction old_handlers[kNumHandledSignals]; -bool handlers_installed = false; - -// InstallAlternateStackLocked will store the newly installed stack in new_stack -// and (if it exists) the previously installed stack in old_stack. -stack_t old_stack; -stack_t new_stack; -bool stack_installed = false; - -// Create an alternative stack to run the signal handlers on. This is done since -// the signal might have been caused by a stack overflow. -// Runs before crashing: normal context. -void InstallAlternateStackLocked() { - if (stack_installed) - return; - - memset(&old_stack, 0, sizeof(old_stack)); - memset(&new_stack, 0, sizeof(new_stack)); - - // SIGSTKSZ may be too small to prevent the signal handlers from overrunning - // the alternative stack. Ensure that the size of the alternative stack is - // large enough. - static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); - - // Only set an alternative stack if there isn't already one, or if the current - // one is too small. - if (sys_sigaltstack(NULL, &old_stack) == -1 || !old_stack.ss_sp || - old_stack.ss_size < kSigStackSize) { - new_stack.ss_sp = calloc(1, kSigStackSize); - new_stack.ss_size = kSigStackSize; - - if (sys_sigaltstack(&new_stack, NULL) == -1) { - free(new_stack.ss_sp); - return; - } - stack_installed = true; - } -} - -// Runs before crashing: normal context. -void RestoreAlternateStackLocked() { - if (!stack_installed) - return; - - stack_t current_stack; - if (sys_sigaltstack(NULL, ¤t_stack) == -1) - return; - - // Only restore the old_stack if the current alternative stack is the one - // installed by the call to InstallAlternateStackLocked. - if (current_stack.ss_sp == new_stack.ss_sp) { - if (old_stack.ss_sp) { - if (sys_sigaltstack(&old_stack, NULL) == -1) - return; - } else { - stack_t disable_stack; - disable_stack.ss_flags = SS_DISABLE; - if (sys_sigaltstack(&disable_stack, NULL) == -1) - return; - } - } - - free(new_stack.ss_sp); - stack_installed = false; -} - -void InstallDefaultHandler(int sig) { -#if defined(__ANDROID__) - // Android L+ expose signal and sigaction symbols that override the system - // ones. There is a bug in these functions where a request to set the handler - // to SIG_DFL is ignored. In that case, an infinite loop is entered as the - // signal is repeatedly sent to breakpad's signal handler. - // To work around this, directly call the system's sigaction. - struct kernel_sigaction sa; - memset(&sa, 0, sizeof(sa)); - sys_sigemptyset(&sa.sa_mask); - sa.sa_handler_ = SIG_DFL; - sa.sa_flags = SA_RESTART; - sys_rt_sigaction(sig, &sa, NULL, sizeof(kernel_sigset_t)); -#else - signal(sig, SIG_DFL); -#endif -} - -// The global exception handler stack. This is needed because there may exist -// multiple ExceptionHandler instances in a process. Each will have itself -// registered in this stack. -std::vector* g_handler_stack_ = NULL; -pthread_mutex_t g_handler_stack_mutex_ = PTHREAD_MUTEX_INITIALIZER; - -// sizeof(CrashContext) can be too big w.r.t the size of alternatate stack -// for SignalHandler(). Keep the crash context as a .bss field. Exception -// handlers are serialized by the |g_handler_stack_mutex_| and at most one at a -// time can use |g_crash_context_|. -ExceptionHandler::CrashContext g_crash_context_; - -} // namespace - -// Runs before crashing: normal context. -ExceptionHandler::ExceptionHandler(const MinidumpDescriptor& descriptor, - FilterCallback filter, - MinidumpCallback callback, - void* callback_context, - bool install_handler, - const int server_fd) - : filter_(filter), - callback_(callback), - callback_context_(callback_context), - minidump_descriptor_(descriptor), - crash_handler_(NULL) { - if (server_fd >= 0) - crash_generation_client_.reset(CrashGenerationClient::TryCreate(server_fd)); - - if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() && - !minidump_descriptor_.IsMicrodumpOnConsole()) - minidump_descriptor_.UpdatePath(); - -#if defined(__ANDROID__) - if (minidump_descriptor_.IsMicrodumpOnConsole()) - logger::initializeCrashLogWriter(); -#endif - - pthread_mutex_lock(&g_handler_stack_mutex_); - - // Pre-fault the crash context struct. This is to avoid failing due to OOM - // if handling an exception when the process ran out of virtual memory. - memset(&g_crash_context_, 0, sizeof(g_crash_context_)); - - if (!g_handler_stack_) - g_handler_stack_ = new std::vector; - if (install_handler) { - InstallAlternateStackLocked(); - InstallHandlersLocked(); - } - g_handler_stack_->push_back(this); - pthread_mutex_unlock(&g_handler_stack_mutex_); -} - -// Runs before crashing: normal context. -ExceptionHandler::~ExceptionHandler() { - pthread_mutex_lock(&g_handler_stack_mutex_); - std::vector::iterator handler = - std::find(g_handler_stack_->begin(), g_handler_stack_->end(), this); - g_handler_stack_->erase(handler); - if (g_handler_stack_->empty()) { - delete g_handler_stack_; - g_handler_stack_ = NULL; - RestoreAlternateStackLocked(); - RestoreHandlersLocked(); - } - pthread_mutex_unlock(&g_handler_stack_mutex_); -} - -// Runs before crashing: normal context. -// static -bool ExceptionHandler::InstallHandlersLocked() { - if (handlers_installed) - return false; - - // Fail if unable to store all the old handlers. - for (int i = 0; i < kNumHandledSignals; ++i) { - if (sigaction(kExceptionSignals[i], NULL, &old_handlers[i]) == -1) - return false; - } - - struct sigaction sa; - memset(&sa, 0, sizeof(sa)); - sigemptyset(&sa.sa_mask); - - // Mask all exception signals when we're handling one of them. - for (int i = 0; i < kNumHandledSignals; ++i) - sigaddset(&sa.sa_mask, kExceptionSignals[i]); - - sa.sa_sigaction = SignalHandler; - sa.sa_flags = SA_ONSTACK | SA_SIGINFO; - - for (int i = 0; i < kNumHandledSignals; ++i) { - if (sigaction(kExceptionSignals[i], &sa, NULL) == -1) { - // At this point it is impractical to back out changes, and so failure to - // install a signal is intentionally ignored. - } - } - handlers_installed = true; - return true; -} - -// This function runs in a compromised context: see the top of the file. -// Runs on the crashing thread. -// static -void ExceptionHandler::RestoreHandlersLocked() { - if (!handlers_installed) - return; - - for (int i = 0; i < kNumHandledSignals; ++i) { - if (sigaction(kExceptionSignals[i], &old_handlers[i], NULL) == -1) { - InstallDefaultHandler(kExceptionSignals[i]); - } - } - handlers_installed = false; -} - -// void ExceptionHandler::set_crash_handler(HandlerCallback callback) { -// crash_handler_ = callback; -// } - -// This function runs in a compromised context: see the top of the file. -// Runs on the crashing thread. -// static -void ExceptionHandler::SignalHandler(int sig, siginfo_t* info, void* uc) { - // All the exception signals are blocked at this point. - pthread_mutex_lock(&g_handler_stack_mutex_); - - // Sometimes, Breakpad runs inside a process where some other buggy code - // saves and restores signal handlers temporarily with 'signal' - // instead of 'sigaction'. This loses the SA_SIGINFO flag associated - // with this function. As a consequence, the values of 'info' and 'uc' - // become totally bogus, generally inducing a crash. - // - // The following code tries to detect this case. When it does, it - // resets the signal handlers with sigaction + SA_SIGINFO and returns. - // This forces the signal to be thrown again, but this time the kernel - // will call the function with the right arguments. - struct sigaction cur_handler; - if (sigaction(sig, NULL, &cur_handler) == 0 && - (cur_handler.sa_flags & SA_SIGINFO) == 0) { - // Reset signal handler with the right flags. - sigemptyset(&cur_handler.sa_mask); - sigaddset(&cur_handler.sa_mask, sig); - - cur_handler.sa_sigaction = SignalHandler; - cur_handler.sa_flags = SA_ONSTACK | SA_SIGINFO; - - if (sigaction(sig, &cur_handler, NULL) == -1) { - // When resetting the handler fails, try to reset the - // default one to avoid an infinite loop here. - InstallDefaultHandler(sig); - } - pthread_mutex_unlock(&g_handler_stack_mutex_); - return; - } - - bool handled = false; - for (int i = g_handler_stack_->size() - 1; !handled && i >= 0; --i) { - handled = (*g_handler_stack_)[i]->HandleSignal(sig, info, uc); - } - - // Upon returning from this signal handler, sig will become unmasked and then - // it will be retriggered. If one of the ExceptionHandlers handled it - // successfully, restore the default handler. Otherwise, restore the - // previously installed handler. Then, when the signal is retriggered, it will - // be delivered to the appropriate handler. - if (handled) { - InstallDefaultHandler(sig); - } else { - RestoreHandlersLocked(); - } - - pthread_mutex_unlock(&g_handler_stack_mutex_); - - // info->si_code <= 0 iff SI_FROMUSER (SI_FROMKERNEL otherwise). - if (info->si_code <= 0 || sig == SIGABRT) { - // This signal was triggered by somebody sending us the signal with kill(). - // In order to retrigger it, we have to queue a new signal by calling - // kill() ourselves. The special case (si_pid == 0 && sig == SIGABRT) is - // due to the kernel sending a SIGABRT from a user request via SysRQ. - if (tgkill(getpid(), syscall(__NR_gettid), sig) < 0) { - // If we failed to kill ourselves (e.g. because a sandbox disallows us - // to do so), we instead resort to terminating our process. This will - // result in an incorrect exit code. - _exit(1); - } - } else { - // This was a synchronous signal triggered by a hard fault (e.g. SIGSEGV). - // No need to reissue the signal. It will automatically trigger again, - // when we return from the signal handler. - } -} - -struct ThreadArgument { - pid_t pid; // the crashing process - const MinidumpDescriptor* minidump_descriptor; - ExceptionHandler* handler; - const void* context; // a CrashContext structure - size_t context_size; -}; - -// This is the entry function for the cloned process. We are in a compromised -// context here: see the top of the file. -// static -int ExceptionHandler::ThreadEntry(void *arg) { - const ThreadArgument *thread_arg = reinterpret_cast(arg); - - // Block here until the crashing process unblocks us when - // we're allowed to use ptrace - thread_arg->handler->WaitForContinueSignal(); - - return thread_arg->handler->DoDump(thread_arg->pid, thread_arg->context, - thread_arg->context_size) == false; -} - -// This function runs in a compromised context: see the top of the file. -// Runs on the crashing thread. -bool ExceptionHandler::HandleSignal(int sig, siginfo_t* info, void* uc) { - if (filter_ && !filter_(callback_context_)) - return false; - - // Allow ourselves to be dumped if the signal is trusted. - bool signal_trusted = info->si_code > 0; - bool signal_pid_trusted = info->si_code == SI_USER || - info->si_code == SI_TKILL; - if (signal_trusted || (signal_pid_trusted && info->si_pid == getpid())) { - sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0); - } - - // Fill in all the holes in the struct to make Valgrind happy. - memset(&g_crash_context_, 0, sizeof(g_crash_context_)); - memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); - memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); -#if defined(__aarch64__) - struct ucontext* uc_ptr = (struct ucontext*)uc; - struct fpsimd_context* fp_ptr = - (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; - if (fp_ptr->head.magic == FPSIMD_MAGIC) { - memcpy(&g_crash_context_.float_state, fp_ptr, - sizeof(g_crash_context_.float_state)); - } -#elif !defined(__ARM_EABI__) && !defined(__mips__) - // FP state is not part of user ABI on ARM Linux. - // In case of MIPS Linux FP state is already part of struct ucontext - // and 'float_state' is not a member of CrashContext. - struct ucontext* uc_ptr = (struct ucontext*)uc; - if (uc_ptr->uc_mcontext.fpregs) { - memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, - sizeof(g_crash_context_.float_state)); - } -#endif - g_crash_context_.tid = syscall(__NR_gettid); - if (crash_handler_ != NULL) { - if (crash_handler_(&g_crash_context_, sizeof(g_crash_context_), - callback_context_)) { - return true; - } - } - return GenerateDump(&g_crash_context_); -} - -// This is a public interface to HandleSignal that allows the client to -// generate a crash dump. This function may run in a compromised context. -bool ExceptionHandler::SimulateSignalDelivery(int sig) { - siginfo_t siginfo = {}; - // Mimic a trusted signal to allow tracing the process (see - // ExceptionHandler::HandleSignal(). - siginfo.si_code = SI_USER; - siginfo.si_pid = getpid(); - struct ucontext context; - getcontext(&context); - return HandleSignal(sig, &siginfo, &context); -} - -// This function may run in a compromised context: see the top of the file. -bool ExceptionHandler::GenerateDump(CrashContext *context) { - if (IsOutOfProcess()) - return crash_generation_client_->RequestDump(context, sizeof(*context)); - - // Allocating too much stack isn't a problem, and better to err on the side - // of caution than smash it into random locations. - static const unsigned kChildStackSize = 16000; - PageAllocator allocator; - uint8_t* stack = reinterpret_cast(allocator.Alloc(kChildStackSize)); - if (!stack) - return false; - // clone() needs the top-most address. (scrub just to be safe) - stack += kChildStackSize; - my_memset(stack - 16, 0, 16); - - ThreadArgument thread_arg; - thread_arg.handler = this; - thread_arg.minidump_descriptor = &minidump_descriptor_; - thread_arg.pid = getpid(); - thread_arg.context = context; - thread_arg.context_size = sizeof(*context); - - // We need to explicitly enable ptrace of parent processes on some - // kernels, but we need to know the PID of the cloned process before we - // can do this. Create a pipe here which we can use to block the - // cloned process after creating it, until we have explicitly enabled ptrace - if (sys_pipe(fdes) == -1) { - // Creating the pipe failed. We'll log an error but carry on anyway, - // as we'll probably still get a useful crash report. All that will happen - // is the write() and read() calls will fail with EBADF - static const char no_pipe_msg[] = "ExceptionHandler::GenerateDump " - "sys_pipe failed:"; - logger::write(no_pipe_msg, sizeof(no_pipe_msg) - 1); - logger::write(strerror(errno), strlen(strerror(errno))); - logger::write("\n", 1); - - // Ensure fdes[0] and fdes[1] are invalid file descriptors. - fdes[0] = fdes[1] = -1; - } - - const pid_t child = sys_clone( - ThreadEntry, stack, CLONE_FILES | CLONE_FS | CLONE_UNTRACED, - &thread_arg, NULL, NULL, NULL); - if (child == -1) { - sys_close(fdes[0]); - sys_close(fdes[1]); - return false; - } - - // Allow the child to ptrace us - sys_prctl(PR_SET_PTRACER, child, 0, 0, 0); - SendContinueSignalToChild(); - int status; - const int r = HANDLE_EINTR(sys_waitpid(child, &status, __WALL)); - - sys_close(fdes[0]); - sys_close(fdes[1]); - - if (r == -1) { - static const char msg[] = "ExceptionHandler::GenerateDump waitpid failed:"; - logger::write(msg, sizeof(msg) - 1); - logger::write(strerror(errno), strlen(strerror(errno))); - logger::write("\n", 1); - } - - bool success = r != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0; - if (callback_) - success = callback_(minidump_descriptor_, callback_context_, success); - return success; -} - -// This function runs in a compromised context: see the top of the file. -void ExceptionHandler::SendContinueSignalToChild() { - static const char okToContinueMessage = 'a'; - int r; - r = HANDLE_EINTR(sys_write(fdes[1], &okToContinueMessage, sizeof(char))); - if (r == -1) { - static const char msg[] = "ExceptionHandler::SendContinueSignalToChild " - "sys_write failed:"; - logger::write(msg, sizeof(msg) - 1); - logger::write(strerror(errno), strlen(strerror(errno))); - logger::write("\n", 1); - } -} - -// This function runs in a compromised context: see the top of the file. -// Runs on the cloned process. -void ExceptionHandler::WaitForContinueSignal() { - int r; - char receivedMessage; - r = HANDLE_EINTR(sys_read(fdes[0], &receivedMessage, sizeof(char))); - if (r == -1) { - static const char msg[] = "ExceptionHandler::WaitForContinueSignal " - "sys_read failed:"; - logger::write(msg, sizeof(msg) - 1); - logger::write(strerror(errno), strlen(strerror(errno))); - logger::write("\n", 1); - } -} - -// This function runs in a compromised context: see the top of the file. -// Runs on the cloned process. -bool ExceptionHandler::DoDump(pid_t crashing_process, const void* context, - size_t context_size) { - if (minidump_descriptor_.IsMicrodumpOnConsole()) { - return google_breakpad::WriteMicrodump( - crashing_process, - context, - context_size, - mapping_list_, - *minidump_descriptor_.microdump_extra_info()); - } - if (minidump_descriptor_.IsFD()) { - return google_breakpad::WriteMinidump(minidump_descriptor_.fd(), - minidump_descriptor_.size_limit(), - crashing_process, - context, - context_size, - mapping_list_, - app_memory_list_); - } - return google_breakpad::WriteMinidump(minidump_descriptor_.path(), - minidump_descriptor_.size_limit(), - crashing_process, - context, - context_size, - mapping_list_, - app_memory_list_); -} - -// static -bool ExceptionHandler::WriteMinidump(const string& dump_path, - MinidumpCallback callback, - void* callback_context) { - MinidumpDescriptor descriptor(dump_path); - ExceptionHandler eh(descriptor, NULL, callback, callback_context, false, -1); - return eh.WriteMinidump(); -} - -// In order to making using EBP to calculate the desired value for ESP -// a valid operation, ensure that this function is compiled with a -// frame pointer using the following attribute. This attribute -// is supported on GCC but not on clang. -#if defined(__i386__) && defined(__GNUC__) && !defined(__clang__) -__attribute__((optimize("no-omit-frame-pointer"))) -#endif -bool ExceptionHandler::WriteMinidump() { - if (!IsOutOfProcess() && !minidump_descriptor_.IsFD() && - !minidump_descriptor_.IsMicrodumpOnConsole()) { - // Update the path of the minidump so that this can be called multiple times - // and new files are created for each minidump. This is done before the - // generation happens, as clients may want to access the MinidumpDescriptor - // after this call to find the exact path to the minidump file. - minidump_descriptor_.UpdatePath(); - } else if (minidump_descriptor_.IsFD()) { - // Reposition the FD to its beginning and resize it to get rid of the - // previous minidump info. - lseek(minidump_descriptor_.fd(), 0, SEEK_SET); - ignore_result(ftruncate(minidump_descriptor_.fd(), 0)); - } - - // Allow this process to be dumped. - sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0); - - CrashContext context; - int getcontext_result = getcontext(&context.context); - if (getcontext_result) - return false; - -#if defined(__i386__) - // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved - // from REG_UESP instead of from REG_ESP. REG_UESP is the user stack pointer - // and it only makes sense when running in kernel mode with a different stack - // pointer. When WriteMiniDump is called during normal processing REG_UESP is - // zero which leads to bad minidump files. - if (!context.context.uc_mcontext.gregs[REG_UESP]) { - // If REG_UESP is set to REG_ESP then that includes the stack space for the - // CrashContext object in this function, which is about 128 KB. Since the - // Linux dumper only records 32 KB of stack this would mean that nothing - // useful would be recorded. A better option is to set REG_UESP to REG_EBP, - // perhaps with a small negative offset in case there is any code that - // objects to them being equal. - context.context.uc_mcontext.gregs[REG_UESP] = - context.context.uc_mcontext.gregs[REG_EBP] - 16; - // The stack saving is based off of REG_ESP so it must be set to match the - // new REG_UESP. - context.context.uc_mcontext.gregs[REG_ESP] = - context.context.uc_mcontext.gregs[REG_UESP]; - } -#endif - -#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__) - // FPU state is not part of ARM EABI ucontext_t. - memcpy(&context.float_state, context.context.uc_mcontext.fpregs, - sizeof(context.float_state)); -#endif - context.tid = sys_gettid(); - - // Add an exception stream to the minidump for better reporting. - memset(&context.siginfo, 0, sizeof(context.siginfo)); - context.siginfo.si_signo = MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED; -#if defined(__i386__) - context.siginfo.si_addr = - reinterpret_cast(context.context.uc_mcontext.gregs[REG_EIP]); -#elif defined(__x86_64__) - context.siginfo.si_addr = - reinterpret_cast(context.context.uc_mcontext.gregs[REG_RIP]); -#elif defined(__arm__) - context.siginfo.si_addr = - reinterpret_cast(context.context.uc_mcontext.arm_pc); -#elif defined(__aarch64__) - context.siginfo.si_addr = - reinterpret_cast(context.context.uc_mcontext.pc); -#elif defined(__mips__) - context.siginfo.si_addr = - reinterpret_cast(context.context.uc_mcontext.pc); -#else -#error "This code has not been ported to your platform yet." -#endif - - return GenerateDump(&context); -} - -void ExceptionHandler::AddMappingInfo(const string& name, - const uint8_t identifier[sizeof(MDGUID)], - uintptr_t start_address, - size_t mapping_size, - size_t file_offset) { - MappingInfo info; - info.start_addr = start_address; - info.size = mapping_size; - info.offset = file_offset; - strncpy(info.name, name.c_str(), sizeof(info.name) - 1); - info.name[sizeof(info.name) - 1] = '\0'; - - MappingEntry mapping; - mapping.first = info; - memcpy(mapping.second, identifier, sizeof(MDGUID)); - mapping_list_.push_back(mapping); -} - -void ExceptionHandler::RegisterAppMemory(void* ptr, size_t length) { - AppMemoryList::iterator iter = - std::find(app_memory_list_.begin(), app_memory_list_.end(), ptr); - if (iter != app_memory_list_.end()) { - // Don't allow registering the same pointer twice. - return; - } - - AppMemory app_memory; - app_memory.ptr = ptr; - app_memory.length = length; - app_memory_list_.push_back(app_memory); -} - -void ExceptionHandler::UnregisterAppMemory(void* ptr) { - AppMemoryList::iterator iter = - std::find(app_memory_list_.begin(), app_memory_list_.end(), ptr); - if (iter != app_memory_list_.end()) { - app_memory_list_.erase(iter); - } -} - -// static -bool ExceptionHandler::WriteMinidumpForChild(pid_t child, - pid_t child_blamed_thread, - const string& dump_path, - MinidumpCallback callback, - void* callback_context) { - // This function is not run in a compromised context. - MinidumpDescriptor descriptor(dump_path); - descriptor.UpdatePath(); - if (!google_breakpad::WriteMinidump(descriptor.path(), - child, - child_blamed_thread)) - return false; - - return callback ? callback(descriptor, callback_context, true) : true; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/handler/exception_handler.h b/sources/google-breakpad/src/client/linux/handler/exception_handler.h deleted file mode 100644 index 591c3108..00000000 --- a/sources/google-breakpad/src/client/linux/handler/exception_handler.h +++ /dev/null @@ -1,278 +0,0 @@ -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_ -#define CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_ - -#include -#include -#include -#include - -#include - -#include "client/linux/crash_generation/crash_generation_client.h" -#include "client/linux/handler/minidump_descriptor.h" -#include "client/linux/minidump_writer/minidump_writer.h" -#include "common/scoped_ptr.h" -#include "common/using_std_string.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -// ExceptionHandler -// -// ExceptionHandler can write a minidump file when an exception occurs, -// or when WriteMinidump() is called explicitly by your program. -// -// To have the exception handler write minidumps when an uncaught exception -// (crash) occurs, you should create an instance early in the execution -// of your program, and keep it around for the entire time you want to -// have crash handling active (typically, until shutdown). -// (NOTE): There should be only be one this kind of exception handler -// object per process. -// -// If you want to write minidumps without installing the exception handler, -// you can create an ExceptionHandler with install_handler set to false, -// then call WriteMinidump. You can also use this technique if you want to -// use different minidump callbacks for different call sites. -// -// In either case, a callback function is called when a minidump is written, -// which receives the full path or file descriptor of the minidump. The -// caller can collect and write additional application state to that minidump, -// and launch an external crash-reporting application. -// -// Caller should try to make the callbacks as crash-friendly as possible, -// it should avoid use heap memory allocation as much as possible. - -class ExceptionHandler { - public: - // A callback function to run before Breakpad performs any substantial - // processing of an exception. A FilterCallback is called before writing - // a minidump. |context| is the parameter supplied by the user as - // callback_context when the handler was created. - // - // If a FilterCallback returns true, Breakpad will continue processing, - // attempting to write a minidump. If a FilterCallback returns false, - // Breakpad will immediately report the exception as unhandled without - // writing a minidump, allowing another handler the opportunity to handle it. - typedef bool (*FilterCallback)(void *context); - - // A callback function to run after the minidump has been written. - // |descriptor| contains the file descriptor or file path containing the - // minidump. |context| is the parameter supplied by the user as - // callback_context when the handler was created. |succeeded| indicates - // whether a minidump file was successfully written. - // - // If an exception occurred and the callback returns true, Breakpad will - // treat the exception as fully-handled, suppressing any other handlers from - // being notified of the exception. If the callback returns false, Breakpad - // will treat the exception as unhandled, and allow another handler to handle - // it. If there are no other handlers, Breakpad will report the exception to - // the system as unhandled, allowing a debugger or native crash dialog the - // opportunity to handle the exception. Most callback implementations - // should normally return the value of |succeeded|, or when they wish to - // not report an exception of handled, false. Callbacks will rarely want to - // return true directly (unless |succeeded| is true). - typedef bool (*MinidumpCallback)(const MinidumpDescriptor& descriptor, - void* context, - bool succeeded); - - // In certain cases, a user may wish to handle the generation of the minidump - // themselves. In this case, they can install a handler callback which is - // called when a crash has occurred. If this function returns true, no other - // processing of occurs and the process will shortly be crashed. If this - // returns false, the normal processing continues. - typedef bool (*HandlerCallback)(const void* crash_context, - size_t crash_context_size, - void* context); - - // Creates a new ExceptionHandler instance to handle writing minidumps. - // Before writing a minidump, the optional |filter| callback will be called. - // Its return value determines whether or not Breakpad should write a - // minidump. The minidump content will be written to the file path or file - // descriptor from |descriptor|, and the optional |callback| is called after - // writing the dump file, as described above. - // If install_handler is true, then a minidump will be written whenever - // an unhandled exception occurs. If it is false, minidumps will only - // be written when WriteMinidump is called. - // If |server_fd| is valid, the minidump is generated out-of-process. If it - // is -1, in-process generation will always be used. - ExceptionHandler(const MinidumpDescriptor& descriptor, - FilterCallback filter, - MinidumpCallback callback, - void* callback_context, - bool install_handler, - const int server_fd); - ~ExceptionHandler(); - - const MinidumpDescriptor& minidump_descriptor() const { - return minidump_descriptor_; - } - - void set_minidump_descriptor(const MinidumpDescriptor& descriptor) { - minidump_descriptor_ = descriptor; - } - - void set_crash_handler(HandlerCallback callback) { - crash_handler_ = callback; - } - - void set_crash_generation_client(CrashGenerationClient* client) { - crash_generation_client_.reset(client); - } - - // Writes a minidump immediately. This can be used to capture the execution - // state independently of a crash. - // Returns true on success. - // If the ExceptionHandler has been created with a path, a new file is - // generated for each minidump. The file path can be retrieved in the - // MinidumpDescriptor passed to the MinidumpCallback or by accessing the - // MinidumpDescriptor directly from the ExceptionHandler (with - // minidump_descriptor()). - // If the ExceptionHandler has been created with a file descriptor, the file - // descriptor is repositioned to its beginning and the previous generated - // minidump is overwritten. - // Note that this method is not supposed to be called from a compromised - // context as it uses the heap. - bool WriteMinidump(); - - // Convenience form of WriteMinidump which does not require an - // ExceptionHandler instance. - static bool WriteMinidump(const string& dump_path, - MinidumpCallback callback, - void* callback_context); - - // Write a minidump of |child| immediately. This can be used to - // capture the execution state of |child| independently of a crash. - // Pass a meaningful |child_blamed_thread| to make that thread in - // the child process the one from which a crash signature is - // extracted. - // - // WARNING: the return of this function *must* happen before - // the code that will eventually reap |child| executes. - // Otherwise there's a pernicious race condition in which |child| - // exits, is reaped, another process created with its pid, then that - // new process dumped. - static bool WriteMinidumpForChild(pid_t child, - pid_t child_blamed_thread, - const string& dump_path, - MinidumpCallback callback, - void* callback_context); - - // This structure is passed to minidump_writer.h:WriteMinidump via an opaque - // blob. It shouldn't be needed in any user code. - struct CrashContext { - siginfo_t siginfo; - pid_t tid; // the crashing thread. - struct ucontext context; -#if !defined(__ARM_EABI__) && !defined(__mips__) - // #ifdef this out because FP state is not part of user ABI for Linux ARM. - // In case of MIPS Linux FP state is already part of struct - // ucontext so 'float_state' is not required. - fpstate_t float_state; -#endif - }; - - // Returns whether out-of-process dump generation is used or not. - bool IsOutOfProcess() const { - return crash_generation_client_.get() != NULL; - } - - // Add information about a memory mapping. This can be used if - // a custom library loader is used that maps things in a way - // that the linux dumper can't handle by reading the maps file. - void AddMappingInfo(const string& name, - const uint8_t identifier[sizeof(MDGUID)], - uintptr_t start_address, - size_t mapping_size, - size_t file_offset); - - // Register a block of memory of length bytes starting at address ptr - // to be copied to the minidump when a crash happens. - void RegisterAppMemory(void* ptr, size_t length); - - // Unregister a block of memory that was registered with RegisterAppMemory. - void UnregisterAppMemory(void* ptr); - - // Force signal handling for the specified signal. - bool SimulateSignalDelivery(int sig); - - // Report a crash signal from an SA_SIGINFO signal handler. - bool HandleSignal(int sig, siginfo_t* info, void* uc); - - private: - // Save the old signal handlers and install new ones. - static bool InstallHandlersLocked(); - // Restore the old signal handlers. - static void RestoreHandlersLocked(); - - void PreresolveSymbols(); - bool GenerateDump(CrashContext *context); - void SendContinueSignalToChild(); - void WaitForContinueSignal(); - - static void SignalHandler(int sig, siginfo_t* info, void* uc); - static int ThreadEntry(void* arg); - bool DoDump(pid_t crashing_process, const void* context, - size_t context_size); - - const FilterCallback filter_; - const MinidumpCallback callback_; - void* const callback_context_; - - scoped_ptr crash_generation_client_; - - MinidumpDescriptor minidump_descriptor_; - - // Must be volatile. The compiler is unaware of the code which runs in - // the signal handler which reads this variable. Without volatile the - // compiler is free to optimise away writes to this variable which it - // believes are never read. - volatile HandlerCallback crash_handler_; - - // We need to explicitly enable ptrace of parent processes on some - // kernels, but we need to know the PID of the cloned process before we - // can do this. We create a pipe which we can use to block the - // cloned process after creating it, until we have explicitly enabled - // ptrace. This is used to store the file descriptors for the pipe - int fdes[2]; - - // Callers can add extra info about mappings for cases where the - // dumper code cannot extract enough information from /proc//maps. - MappingList mapping_list_; - - // Callers can request additional memory regions to be included in - // the dump. - AppMemoryList app_memory_list_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_HANDLER_EXCEPTION_HANDLER_H_ diff --git a/sources/google-breakpad/src/client/linux/handler/microdump_extra_info.h b/sources/google-breakpad/src/client/linux/handler/microdump_extra_info.h deleted file mode 100644 index b9c3d30d..00000000 --- a/sources/google-breakpad/src/client/linux/handler/microdump_extra_info.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright 2015 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_ -#define CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_ - -namespace google_breakpad { - -struct MicrodumpExtraInfo { - // Strings pointed to by this struct are not copied, and are - // expected to remain valid for the lifetime of the process. - const char* build_fingerprint; - const char* product_info; - const char* gpu_fingerprint; - - MicrodumpExtraInfo() - : build_fingerprint(NULL), product_info(NULL), gpu_fingerprint(NULL) {} -}; - -} - -#endif // CLIENT_LINUX_HANDLER_MICRODUMP_EXTRA_INFO_H_ diff --git a/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.cc b/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.cc deleted file mode 100644 index ce09153d..00000000 --- a/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.cc +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) 2012 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include - -#include "client/linux/handler/minidump_descriptor.h" - -#include "common/linux/guid_creator.h" - -namespace google_breakpad { - -//static -const MinidumpDescriptor::MicrodumpOnConsole - MinidumpDescriptor::kMicrodumpOnConsole = {}; - -MinidumpDescriptor::MinidumpDescriptor(const MinidumpDescriptor& descriptor) - : mode_(descriptor.mode_), - fd_(descriptor.fd_), - directory_(descriptor.directory_), - c_path_(NULL), - size_limit_(descriptor.size_limit_), - microdump_extra_info_(descriptor.microdump_extra_info_) { - // The copy constructor is not allowed to be called on a MinidumpDescriptor - // with a valid path_, as getting its c_path_ would require the heap which - // can cause problems in compromised environments. - assert(descriptor.path_.empty()); -} - -MinidumpDescriptor& MinidumpDescriptor::operator=( - const MinidumpDescriptor& descriptor) { - assert(descriptor.path_.empty()); - - mode_ = descriptor.mode_; - fd_ = descriptor.fd_; - directory_ = descriptor.directory_; - path_.clear(); - if (c_path_) { - // This descriptor already had a path set, so generate a new one. - c_path_ = NULL; - UpdatePath(); - } - size_limit_ = descriptor.size_limit_; - microdump_extra_info_ = descriptor.microdump_extra_info_; - return *this; -} - -void MinidumpDescriptor::UpdatePath() { - assert(mode_ == kWriteMinidumpToFile && !directory_.empty()); - - GUID guid; - char guid_str[kGUIDStringLength + 1]; - if (!CreateGUID(&guid) || !GUIDToString(&guid, guid_str, sizeof(guid_str))) { - assert(false); - } - - path_.clear(); - path_ = directory_ + "/" + guid_str + ".dmp"; - c_path_ = path_.c_str(); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.h b/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.h deleted file mode 100644 index 782a60a4..00000000 --- a/sources/google-breakpad/src/client/linux/handler/minidump_descriptor.h +++ /dev/null @@ -1,149 +0,0 @@ -// Copyright (c) 2012 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_ -#define CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_ - -#include -#include - -#include - -#include "client/linux/handler/microdump_extra_info.h" -#include "common/using_std_string.h" - -// This class describes how a crash dump should be generated, either: -// - Writing a full minidump to a file in a given directory (the actual path, -// inside the directory, is determined by this class). -// - Writing a full minidump to a given fd. -// - Writing a reduced microdump to the console (logcat on Android). -namespace google_breakpad { - -class MinidumpDescriptor { - public: - struct MicrodumpOnConsole {}; - static const MicrodumpOnConsole kMicrodumpOnConsole; - - MinidumpDescriptor() - : mode_(kUninitialized), - fd_(-1), - size_limit_(-1) {} - - explicit MinidumpDescriptor(const string& directory) - : mode_(kWriteMinidumpToFile), - fd_(-1), - directory_(directory), - c_path_(NULL), - size_limit_(-1) { - assert(!directory.empty()); - } - - explicit MinidumpDescriptor(int fd) - : mode_(kWriteMinidumpToFd), - fd_(fd), - c_path_(NULL), - size_limit_(-1) { - assert(fd != -1); - } - - explicit MinidumpDescriptor(const MicrodumpOnConsole&) - : mode_(kWriteMicrodumpToConsole), - fd_(-1), - size_limit_(-1) {} - - explicit MinidumpDescriptor(const MinidumpDescriptor& descriptor); - MinidumpDescriptor& operator=(const MinidumpDescriptor& descriptor); - - static MinidumpDescriptor getMicrodumpDescriptor(); - - bool IsFD() const { return mode_ == kWriteMinidumpToFd; } - - int fd() const { return fd_; } - - string directory() const { return directory_; } - - const char* path() const { return c_path_; } - - bool IsMicrodumpOnConsole() const { - return mode_ == kWriteMicrodumpToConsole; - } - - // Updates the path so it is unique. - // Should be called from a normal context: this methods uses the heap. - void UpdatePath(); - - off_t size_limit() const { return size_limit_; } - void set_size_limit(off_t limit) { size_limit_ = limit; } - - MicrodumpExtraInfo* microdump_extra_info() { - assert(IsMicrodumpOnConsole()); - return µdump_extra_info_; - }; - - private: - enum DumpMode { - kUninitialized = 0, - kWriteMinidumpToFile, - kWriteMinidumpToFd, - kWriteMicrodumpToConsole - }; - - // Specifies the dump mode (see DumpMode). - DumpMode mode_; - - // The file descriptor where the minidump is generated. - int fd_; - - // The directory where the minidump should be generated. - string directory_; - - // The full path to the generated minidump. - string path_; - - // The C string of |path_|. Precomputed so it can be access from a compromised - // context. - const char* c_path_; - - off_t size_limit_; - - // The extra microdump data (e.g. product name/version, build - // fingerprint, gpu fingerprint) that should be appended to the dump - // (microdump only). Microdumps don't have the ability of appending - // extra metadata after the dump is generated (as opposite to - // minidumps MIME fields), therefore the extra data must be provided - // upfront. Any memory pointed to by members of the - // MicrodumpExtraInfo struct must be valid for the lifetime of the - // process (read: the caller has to guarantee that it is stored in - // global static storage.) - MicrodumpExtraInfo microdump_extra_info_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_HANDLER_MINIDUMP_DESCRIPTOR_H_ diff --git a/sources/google-breakpad/src/client/linux/log/log.cc b/sources/google-breakpad/src/client/linux/log/log.cc deleted file mode 100644 index fc23aa6d..00000000 --- a/sources/google-breakpad/src/client/linux/log/log.cc +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright (c) 2012 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "client/linux/log/log.h" - -#if defined(__ANDROID__) -#include -#include -#else -#include "third_party/lss/linux_syscall_support.h" -#endif - -namespace logger { - -#if defined(__ANDROID__) -namespace { - -// __android_log_buf_write() is not exported in the NDK and is being used by -// dynamic runtime linking. Its declaration is taken from Android's -// system/core/include/log/log.h. -using AndroidLogBufferWriteFunc = int (*)(int bufID, int prio, const char *tag, - const char *text); -const int kAndroidCrashLogId = 4; // From LOG_ID_CRASH in log.h. -const char kAndroidLogTag[] = "google-breakpad"; - -bool g_crash_log_initialized = false; -AndroidLogBufferWriteFunc g_android_log_buf_write = nullptr; - -} // namespace - -void initializeCrashLogWriter() { - if (g_crash_log_initialized) - return; - g_android_log_buf_write = reinterpret_cast( - dlsym(RTLD_DEFAULT, "__android_log_buf_write")); - g_crash_log_initialized = true; -} - -int writeToCrashLog(const char* buf) { - // Try writing to the crash log ring buffer. If not available, fall back to - // the standard log buffer. - if (g_android_log_buf_write) { - return g_android_log_buf_write(kAndroidCrashLogId, ANDROID_LOG_FATAL, - kAndroidLogTag, buf); - } - return __android_log_write(ANDROID_LOG_FATAL, kAndroidLogTag, buf); -} -#endif - -int write(const char* buf, size_t nbytes) { -#if defined(__ANDROID__) - return __android_log_write(ANDROID_LOG_WARN, kAndroidLogTag, buf); -#else - return sys_write(2, buf, nbytes); -#endif -} - -} // namespace logger diff --git a/sources/google-breakpad/src/client/linux/log/log.h b/sources/google-breakpad/src/client/linux/log/log.h deleted file mode 100644 index f94bbd5f..00000000 --- a/sources/google-breakpad/src/client/linux/log/log.h +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_LOG_LOG_H_ -#define CLIENT_LINUX_LOG_LOG_H_ - -#include - -namespace logger { - -int write(const char* buf, size_t nbytes); - -// In the case of Android the log can be written to the default system log -// (default behavior of write() above, or to the crash log (see -// writeToCrashLog() below). -#if defined(__ANDROID__) - -// The logger must be initialized in a non-compromised context. -void initializeCrashLogWriter(); - -// Once initialized, writeToCrashLog is safe to use in a compromised context, -// even if the initialization failed, in which case this will silently fall -// back on write(). -int writeToCrashLog(const char* buf); -#endif - -} // namespace logger - -#endif // CLIENT_LINUX_LOG_LOG_H_ diff --git a/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc deleted file mode 100644 index 91697ed8..00000000 --- a/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.cc +++ /dev/null @@ -1,439 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// This translation unit generates microdumps into the console (logcat on -// Android). See crbug.com/410294 for more info and design docs. - -#include "client/linux/microdump_writer/microdump_writer.h" - -#include - -#include "client/linux/dump_writer_common/thread_info.h" -#include "client/linux/dump_writer_common/ucontext_reader.h" -#include "client/linux/handler/exception_handler.h" -#include "client/linux/handler/microdump_extra_info.h" -#include "client/linux/log/log.h" -#include "client/linux/minidump_writer/linux_ptrace_dumper.h" -#include "common/linux/linux_libc_support.h" - -namespace { - -using google_breakpad::ExceptionHandler; -using google_breakpad::LinuxDumper; -using google_breakpad::LinuxPtraceDumper; -using google_breakpad::MappingInfo; -using google_breakpad::MappingList; -using google_breakpad::MicrodumpExtraInfo; -using google_breakpad::RawContextCPU; -using google_breakpad::ThreadInfo; -using google_breakpad::UContextReader; - -const size_t kLineBufferSize = 2048; - -class MicrodumpWriter { - public: - MicrodumpWriter(const ExceptionHandler::CrashContext* context, - const MappingList& mappings, - const MicrodumpExtraInfo& microdump_extra_info, - LinuxDumper* dumper) - : ucontext_(context ? &context->context : NULL), -#if !defined(__ARM_EABI__) && !defined(__mips__) - float_state_(context ? &context->float_state : NULL), -#endif - dumper_(dumper), - mapping_list_(mappings), - microdump_extra_info_(microdump_extra_info), - log_line_(NULL) { - log_line_ = reinterpret_cast(Alloc(kLineBufferSize)); - if (log_line_) - log_line_[0] = '\0'; // Clear out the log line buffer. - } - - ~MicrodumpWriter() { dumper_->ThreadsResume(); } - - bool Init() { - // In the exceptional case where the system was out of memory and there - // wasn't even room to allocate the line buffer, bail out. There is nothing - // useful we can possibly achieve without the ability to Log. At least let's - // try to not crash. - if (!dumper_->Init() || !log_line_) - return false; - return dumper_->ThreadsSuspend() && dumper_->LateInit(); - } - - bool Dump() { - bool success; - LogLine("-----BEGIN BREAKPAD MICRODUMP-----"); - DumpProductInformation(); - DumpOSInformation(); - DumpGPUInformation(); - success = DumpCrashingThread(); - if (success) - success = DumpMappings(); - LogLine("-----END BREAKPAD MICRODUMP-----"); - dumper_->ThreadsResume(); - return success; - } - - private: - // Writes one line to the system log. - void LogLine(const char* msg) { -#if defined(__ANDROID__) - logger::writeToCrashLog(msg); -#else - logger::write(msg, my_strlen(msg)); - logger::write("\n", 1); -#endif - } - - // Stages the given string in the current line buffer. - void LogAppend(const char* str) { - my_strlcat(log_line_, str, kLineBufferSize); - } - - // As above (required to take precedence over template specialization below). - void LogAppend(char* str) { - LogAppend(const_cast(str)); - } - - // Stages the hex repr. of the given int type in the current line buffer. - template - void LogAppend(T value) { - // Make enough room to hex encode the largest int type + NUL. - static const char HEX[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F'}; - char hexstr[sizeof(T) * 2 + 1]; - for (int i = sizeof(T) * 2 - 1; i >= 0; --i, value >>= 4) - hexstr[i] = HEX[static_cast(value) & 0x0F]; - hexstr[sizeof(T) * 2] = '\0'; - LogAppend(hexstr); - } - - // Stages the buffer content hex-encoded in the current line buffer. - void LogAppend(const void* buf, size_t length) { - const uint8_t* ptr = reinterpret_cast(buf); - for (size_t i = 0; i < length; ++i, ++ptr) - LogAppend(*ptr); - } - - // Writes out the current line buffer on the system log. - void LogCommitLine() { - LogLine(log_line_); - my_strlcpy(log_line_, "", kLineBufferSize); - } - - void DumpProductInformation() { - LogAppend("V "); - if (microdump_extra_info_.product_info) { - LogAppend(microdump_extra_info_.product_info); - } else { - LogAppend("UNKNOWN:0.0.0.0"); - } - LogCommitLine(); - } - - void DumpOSInformation() { - const uint8_t n_cpus = static_cast(sysconf(_SC_NPROCESSORS_CONF)); - -#if defined(__ANDROID__) - const char kOSId[] = "A"; -#else - const char kOSId[] = "L"; -#endif - -// Dump the runtime architecture. On multiarch devices it might not match the -// hw architecture (the one returned by uname()), for instance in the case of -// a 32-bit app running on a aarch64 device. -#if defined(__aarch64__) - const char kArch[] = "arm64"; -#elif defined(__ARMEL__) - const char kArch[] = "arm"; -#elif defined(__x86_64__) - const char kArch[] = "x86_64"; -#elif defined(__i386__) - const char kArch[] = "x86"; -#elif defined(__mips__) -# if _MIPS_SIM == _ABIO32 - const char kArch[] = "mips"; -# elif _MIPS_SIM == _ABI64 - const char kArch[] = "mips64"; -# else -# error "This mips ABI is currently not supported (n32)" -#endif -#else -#error "This code has not been ported to your platform yet" -#endif - - LogAppend("O "); - LogAppend(kOSId); - LogAppend(" "); - LogAppend(kArch); - LogAppend(" "); - LogAppend(n_cpus); - LogAppend(" "); - - // Dump the HW architecture (e.g., armv7l, aarch64). - struct utsname uts; - const bool has_uts_info = (uname(&uts) == 0); - const char* hwArch = has_uts_info ? uts.machine : "unknown_hw_arch"; - LogAppend(hwArch); - LogAppend(" "); - - // If the client has attached a build fingerprint to the MinidumpDescriptor - // use that one. Otherwise try to get some basic info from uname(). - if (microdump_extra_info_.build_fingerprint) { - LogAppend(microdump_extra_info_.build_fingerprint); - } else if (has_uts_info) { - LogAppend(uts.release); - LogAppend(" "); - LogAppend(uts.version); - } else { - LogAppend("no build fingerprint available"); - } - LogCommitLine(); - } - - void DumpGPUInformation() { - LogAppend("G "); - if (microdump_extra_info_.gpu_fingerprint) { - LogAppend(microdump_extra_info_.gpu_fingerprint); - } else { - LogAppend("UNKNOWN"); - } - LogCommitLine(); - } - - bool DumpThreadStack(uint32_t thread_id, - uintptr_t stack_pointer, - int max_stack_len, - uint8_t** stack_copy) { - *stack_copy = NULL; - const void* stack; - size_t stack_len; - - if (!dumper_->GetStackInfo(&stack, &stack_len, stack_pointer)) { - // The stack pointer might not be available. In this case we don't hard - // fail, just produce a (almost useless) microdump w/o a stack section. - return true; - } - - LogAppend("S 0 "); - LogAppend(stack_pointer); - LogAppend(" "); - LogAppend(reinterpret_cast(stack)); - LogAppend(" "); - LogAppend(stack_len); - LogCommitLine(); - - if (max_stack_len >= 0 && - stack_len > static_cast(max_stack_len)) { - stack_len = max_stack_len; - } - - *stack_copy = reinterpret_cast(Alloc(stack_len)); - dumper_->CopyFromProcess(*stack_copy, thread_id, stack, stack_len); - - // Dump the content of the stack, splicing it into chunks which size is - // compatible with the max logcat line size (see LOGGER_ENTRY_MAX_PAYLOAD). - const size_t STACK_DUMP_CHUNK_SIZE = 384; - for (size_t stack_off = 0; stack_off < stack_len; - stack_off += STACK_DUMP_CHUNK_SIZE) { - LogAppend("S "); - LogAppend(reinterpret_cast(stack) + stack_off); - LogAppend(" "); - LogAppend(*stack_copy + stack_off, - std::min(STACK_DUMP_CHUNK_SIZE, stack_len - stack_off)); - LogCommitLine(); - } - return true; - } - - // Write information about the crashing thread. - bool DumpCrashingThread() { - const unsigned num_threads = dumper_->threads().size(); - - for (unsigned i = 0; i < num_threads; ++i) { - MDRawThread thread; - my_memset(&thread, 0, sizeof(thread)); - thread.thread_id = dumper_->threads()[i]; - - // Dump only the crashing thread. - if (static_cast(thread.thread_id) != dumper_->crash_thread()) - continue; - - assert(ucontext_); - assert(!dumper_->IsPostMortem()); - - uint8_t* stack_copy; - const uintptr_t stack_ptr = UContextReader::GetStackPointer(ucontext_); - if (!DumpThreadStack(thread.thread_id, stack_ptr, -1, &stack_copy)) - return false; - - RawContextCPU cpu; - my_memset(&cpu, 0, sizeof(RawContextCPU)); -#if !defined(__ARM_EABI__) && !defined(__mips__) - UContextReader::FillCPUContext(&cpu, ucontext_, float_state_); -#else - UContextReader::FillCPUContext(&cpu, ucontext_); -#endif - DumpCPUState(&cpu); - } - return true; - } - - void DumpCPUState(RawContextCPU* cpu) { - LogAppend("C "); - LogAppend(cpu, sizeof(*cpu)); - LogCommitLine(); - } - - // If there is caller-provided information about this mapping - // in the mapping_list_ list, return true. Otherwise, return false. - bool HaveMappingInfo(const MappingInfo& mapping) { - for (MappingList::const_iterator iter = mapping_list_.begin(); - iter != mapping_list_.end(); - ++iter) { - // Ignore any mappings that are wholly contained within - // mappings in the mapping_info_ list. - if (mapping.start_addr >= iter->first.start_addr && - (mapping.start_addr + mapping.size) <= - (iter->first.start_addr + iter->first.size)) { - return true; - } - } - return false; - } - - // Dump information about the provided |mapping|. If |identifier| is non-NULL, - // use it instead of calculating a file ID from the mapping. - void DumpModule(const MappingInfo& mapping, - bool member, - unsigned int mapping_id, - const uint8_t* identifier) { - MDGUID module_identifier; - if (identifier) { - // GUID was provided by caller. - my_memcpy(&module_identifier, identifier, sizeof(MDGUID)); - } else { - dumper_->ElfFileIdentifierForMapping( - mapping, - member, - mapping_id, - reinterpret_cast(&module_identifier)); - } - - char file_name[NAME_MAX]; - char file_path[NAME_MAX]; - dumper_->GetMappingEffectiveNameAndPath( - mapping, file_path, sizeof(file_path), file_name, sizeof(file_name)); - - LogAppend("M "); - LogAppend(static_cast(mapping.start_addr)); - LogAppend(" "); - LogAppend(mapping.offset); - LogAppend(" "); - LogAppend(mapping.size); - LogAppend(" "); - LogAppend(module_identifier.data1); - LogAppend(module_identifier.data2); - LogAppend(module_identifier.data3); - LogAppend(module_identifier.data4[0]); - LogAppend(module_identifier.data4[1]); - LogAppend(module_identifier.data4[2]); - LogAppend(module_identifier.data4[3]); - LogAppend(module_identifier.data4[4]); - LogAppend(module_identifier.data4[5]); - LogAppend(module_identifier.data4[6]); - LogAppend(module_identifier.data4[7]); - LogAppend("0 "); // Age is always 0 on Linux. - LogAppend(file_name); - LogCommitLine(); - } - - // Write information about the mappings in effect. - bool DumpMappings() { - // First write all the mappings from the dumper - for (unsigned i = 0; i < dumper_->mappings().size(); ++i) { - const MappingInfo& mapping = *dumper_->mappings()[i]; - if (mapping.name[0] == 0 || // only want modules with filenames. - !mapping.exec || // only want executable mappings. - mapping.size < 4096 || // too small to get a signature for. - HaveMappingInfo(mapping)) { - continue; - } - - DumpModule(mapping, true, i, NULL); - } - // Next write all the mappings provided by the caller - for (MappingList::const_iterator iter = mapping_list_.begin(); - iter != mapping_list_.end(); - ++iter) { - DumpModule(iter->first, false, 0, iter->second); - } - return true; - } - - void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } - - const struct ucontext* const ucontext_; -#if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; -#endif - LinuxDumper* dumper_; - const MappingList& mapping_list_; - const MicrodumpExtraInfo microdump_extra_info_; - char* log_line_; -}; -} // namespace - -namespace google_breakpad { - -bool WriteMicrodump(pid_t crashing_process, - const void* blob, - size_t blob_size, - const MappingList& mappings, - const MicrodumpExtraInfo& microdump_extra_info) { - LinuxPtraceDumper dumper(crashing_process); - const ExceptionHandler::CrashContext* context = NULL; - if (blob) { - if (blob_size != sizeof(ExceptionHandler::CrashContext)) - return false; - context = reinterpret_cast(blob); - dumper.set_crash_address( - reinterpret_cast(context->siginfo.si_addr)); - dumper.set_crash_signal(context->siginfo.si_signo); - dumper.set_crash_thread(context->tid); - } - MicrodumpWriter writer(context, mappings, microdump_extra_info, &dumper); - if (!writer.Init()) - return false; - return writer.Dump(); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.h b/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.h deleted file mode 100644 index 7c742761..00000000 --- a/sources/google-breakpad/src/client/linux/microdump_writer/microdump_writer.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_ - -#include -#include - -#include "client/linux/dump_writer_common/mapping_info.h" - -namespace google_breakpad { - -struct MicrodumpExtraInfo; - -// Writes a microdump (a reduced dump containing only the state of the crashing -// thread) on the console (logcat on Android). These functions do not malloc nor -// use libc functions which may. Thus, it can be used in contexts where the -// state of the heap may be corrupt. -// Args: -// crashing_process: the pid of the crashing process. This must be trusted. -// blob: a blob of data from the crashing process. See exception_handler.h -// blob_size: the length of |blob| in bytes. -// mappings: a list of additional mappings provided by the application. -// build_fingerprint: a (optional) C string which determines the OS -// build fingerprint (e.g., aosp/occam/mako:5.1.1/LMY47W/1234:eng/dev-keys). -// product_info: a (optional) C string which determines the product name and -// version (e.g., WebView:42.0.2311.136). -// -// Returns true iff successful. -bool WriteMicrodump(pid_t crashing_process, - const void* blob, - size_t blob_size, - const MappingList& mappings, - const MicrodumpExtraInfo& microdump_extra_info); - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_MICRODUMP_WRITER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/cpu_set.h b/sources/google-breakpad/src/client/linux/minidump_writer/cpu_set.h deleted file mode 100644 index 1cca9aa5..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/cpu_set.h +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (c) 2013, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_ - -#include -#include -#include - -#include "common/linux/linux_libc_support.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -// Helper class used to model a set of CPUs, as read from sysfs -// files like /sys/devices/system/cpu/present -// See See http://www.kernel.org/doc/Documentation/cputopology.txt -class CpuSet { -public: - // The maximum number of supported CPUs. - static const size_t kMaxCpus = 1024; - - CpuSet() { - my_memset(mask_, 0, sizeof(mask_)); - } - - // Parse a sysfs file to extract the corresponding CPU set. - bool ParseSysFile(int fd) { - char buffer[512]; - int ret = sys_read(fd, buffer, sizeof(buffer)-1); - if (ret < 0) - return false; - - buffer[ret] = '\0'; - - // Expected format: comma-separated list of items, where each - // item can be a decimal integer, or two decimal integers separated - // by a dash. - // E.g.: - // 0 - // 0,1,2,3 - // 0-3 - // 1,10-23 - const char* p = buffer; - const char* p_end = p + ret; - while (p < p_end) { - // Skip leading space, if any - while (p < p_end && my_isspace(*p)) - p++; - - // Find start and size of current item. - const char* item = p; - size_t item_len = static_cast(p_end - p); - const char* item_next = - static_cast(my_memchr(p, ',', item_len)); - if (item_next != NULL) { - p = item_next + 1; - item_len = static_cast(item_next - item); - } else { - p = p_end; - item_next = p_end; - } - - // Ignore trailing spaces. - while (item_next > item && my_isspace(item_next[-1])) - item_next--; - - // skip empty items. - if (item_next == item) - continue; - - // read first decimal value. - uintptr_t start = 0; - const char* next = my_read_decimal_ptr(&start, item); - uintptr_t end = start; - if (*next == '-') - my_read_decimal_ptr(&end, next+1); - - while (start <= end) - SetBit(start++); - } - return true; - } - - // Intersect this CPU set with another one. - void IntersectWith(const CpuSet& other) { - for (size_t nn = 0; nn < kMaskWordCount; ++nn) - mask_[nn] &= other.mask_[nn]; - } - - // Return the number of CPUs in this set. - int GetCount() { - int result = 0; - for (size_t nn = 0; nn < kMaskWordCount; ++nn) { - result += __builtin_popcount(mask_[nn]); - } - return result; - } - -private: - void SetBit(uintptr_t index) { - size_t nn = static_cast(index); - if (nn < kMaxCpus) - mask_[nn / kMaskWordBits] |= (1U << (nn % kMaskWordBits)); - } - - typedef uint32_t MaskWordType; - static const size_t kMaskWordBits = 8*sizeof(MaskWordType); - static const size_t kMaskWordCount = - (kMaxCpus + kMaskWordBits - 1) / kMaskWordBits; - - MaskWordType mask_[kMaskWordCount]; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_CPU_SET_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/directory_reader.h b/sources/google-breakpad/src/client/linux/minidump_writer/directory_reader.h deleted file mode 100644 index a4bde180..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/directory_reader.h +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) 2009, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_ - -#include -#include -#include -#include -#include -#include - -#include "common/linux/linux_libc_support.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -// A class for enumerating a directory without using diropen/readdir or other -// functions which may allocate memory. -class DirectoryReader { - public: - DirectoryReader(int fd) - : fd_(fd), - buf_used_(0) { - } - - // Return the next entry from the directory - // name: (output) the NUL terminated entry name - // - // Returns true iff successful (false on EOF). - // - // After calling this, one must call |PopEntry| otherwise you'll get the same - // entry over and over. - bool GetNextEntry(const char** name) { - struct kernel_dirent* const dent = - reinterpret_cast(buf_); - - if (buf_used_ == 0) { - // need to read more entries. - const int n = sys_getdents(fd_, dent, sizeof(buf_)); - if (n < 0) { - return false; - } else if (n == 0) { - hit_eof_ = true; - } else { - buf_used_ += n; - } - } - - if (buf_used_ == 0 && hit_eof_) - return false; - - assert(buf_used_ > 0); - - *name = dent->d_name; - return true; - } - - void PopEntry() { - if (!buf_used_) - return; - - const struct kernel_dirent* const dent = - reinterpret_cast(buf_); - - buf_used_ -= dent->d_reclen; - my_memmove(buf_, buf_ + dent->d_reclen, buf_used_); - } - - private: - const int fd_; - bool hit_eof_; - unsigned buf_used_; - uint8_t buf_[sizeof(struct kernel_dirent) + NAME_MAX + 1]; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_DIRECTORY_READER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/line_reader.h b/sources/google-breakpad/src/client/linux/minidump_writer/line_reader.h deleted file mode 100644 index 779cfeb6..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/line_reader.h +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright (c) 2009, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_ - -#include -#include -#include - -#include "common/linux/linux_libc_support.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -// A class for reading a file, line by line, without using fopen/fgets or other -// functions which may allocate memory. -class LineReader { - public: - LineReader(int fd) - : fd_(fd), - hit_eof_(false), - buf_used_(0) { - } - - // The maximum length of a line. - static const size_t kMaxLineLen = 512; - - // Return the next line from the file. - // line: (output) a pointer to the start of the line. The line is NUL - // terminated. - // len: (output) the length of the line (not inc the NUL byte) - // - // Returns true iff successful (false on EOF). - // - // One must call |PopLine| after this function, otherwise you'll continue to - // get the same line over and over. - bool GetNextLine(const char **line, unsigned *len) { - for (;;) { - if (buf_used_ == 0 && hit_eof_) - return false; - - for (unsigned i = 0; i < buf_used_; ++i) { - if (buf_[i] == '\n' || buf_[i] == 0) { - buf_[i] = 0; - *len = i; - *line = buf_; - return true; - } - } - - if (buf_used_ == sizeof(buf_)) { - // we scanned the whole buffer and didn't find an end-of-line marker. - // This line is too long to process. - return false; - } - - // We didn't find any end-of-line terminators in the buffer. However, if - // this is the last line in the file it might not have one: - if (hit_eof_) { - assert(buf_used_); - // There's room for the NUL because of the buf_used_ == sizeof(buf_) - // check above. - buf_[buf_used_] = 0; - *len = buf_used_; - buf_used_ += 1; // since we appended the NUL. - *line = buf_; - return true; - } - - // Otherwise, we should pull in more data from the file - const ssize_t n = sys_read(fd_, buf_ + buf_used_, - sizeof(buf_) - buf_used_); - if (n < 0) { - return false; - } else if (n == 0) { - hit_eof_ = true; - } else { - buf_used_ += n; - } - - // At this point, we have either set the hit_eof_ flag, or we have more - // data to process... - } - } - - void PopLine(unsigned len) { - // len doesn't include the NUL byte at the end. - - assert(buf_used_ >= len + 1); - buf_used_ -= len + 1; - my_memmove(buf_, buf_ + len + 1, buf_used_); - } - - private: - const int fd_; - - bool hit_eof_; - unsigned buf_used_; - char buf_[kMaxLineLen]; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_LINE_READER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc b/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc deleted file mode 100644 index 622f0506..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_core_dumper.cc: Implement google_breakpad::LinuxCoreDumper. -// See linux_core_dumper.h for details. - -#include "client/linux/minidump_writer/linux_core_dumper.h" - -#include -#include -#include -#include -#include -#include -#if defined(__mips__) && defined(__ANDROID__) -// To get register definitions. -#include -#endif - -#include "common/linux/linux_libc_support.h" - -namespace google_breakpad { - -LinuxCoreDumper::LinuxCoreDumper(pid_t pid, - const char* core_path, - const char* procfs_path, - const char* root_prefix) - : LinuxDumper(pid, root_prefix), - core_path_(core_path), - procfs_path_(procfs_path), - thread_infos_(&allocator_, 8) { - assert(core_path_); -} - -bool LinuxCoreDumper::BuildProcPath(char* path, pid_t pid, - const char* node) const { - if (!path || !node) - return false; - - size_t node_len = my_strlen(node); - if (node_len == 0) - return false; - - size_t procfs_path_len = my_strlen(procfs_path_); - size_t total_length = procfs_path_len + 1 + node_len; - if (total_length >= NAME_MAX) - return false; - - memcpy(path, procfs_path_, procfs_path_len); - path[procfs_path_len] = '/'; - memcpy(path + procfs_path_len + 1, node, node_len); - path[total_length] = '\0'; - return true; -} - -bool LinuxCoreDumper::CopyFromProcess(void* dest, pid_t child, - const void* src, size_t length) { - ElfCoreDump::Addr virtual_address = reinterpret_cast(src); - // TODO(benchan): Investigate whether the data to be copied could span - // across multiple segments in the core dump file. ElfCoreDump::CopyData - // and this method do not handle that case yet. - if (!core_.CopyData(dest, virtual_address, length)) { - // If the data segment is not found in the core dump, fill the result - // with marker characters. - memset(dest, 0xab, length); - return false; - } - return true; -} - -bool LinuxCoreDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) { - if (index >= thread_infos_.size()) - return false; - - *info = thread_infos_[index]; - const uint8_t* stack_pointer; -#if defined(__i386) - memcpy(&stack_pointer, &info->regs.esp, sizeof(info->regs.esp)); -#elif defined(__x86_64) - memcpy(&stack_pointer, &info->regs.rsp, sizeof(info->regs.rsp)); -#elif defined(__ARM_EABI__) - memcpy(&stack_pointer, &info->regs.ARM_sp, sizeof(info->regs.ARM_sp)); -#elif defined(__aarch64__) - memcpy(&stack_pointer, &info->regs.sp, sizeof(info->regs.sp)); -#elif defined(__mips__) - stack_pointer = - reinterpret_cast(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]); -#else -#error "This code hasn't been ported to your platform yet." -#endif - info->stack_pointer = reinterpret_cast(stack_pointer); - return true; -} - -bool LinuxCoreDumper::IsPostMortem() const { - return true; -} - -bool LinuxCoreDumper::ThreadsSuspend() { - return true; -} - -bool LinuxCoreDumper::ThreadsResume() { - return true; -} - -bool LinuxCoreDumper::EnumerateThreads() { - if (!mapped_core_file_.Map(core_path_, 0)) { - fprintf(stderr, "Could not map core dump file into memory\n"); - return false; - } - - core_.SetContent(mapped_core_file_.content()); - if (!core_.IsValid()) { - fprintf(stderr, "Invalid core dump file\n"); - return false; - } - - ElfCoreDump::Note note = core_.GetFirstNote(); - if (!note.IsValid()) { - fprintf(stderr, "PT_NOTE section not found\n"); - return false; - } - - bool first_thread = true; - do { - ElfCoreDump::Word type = note.GetType(); - MemoryRange name = note.GetName(); - MemoryRange description = note.GetDescription(); - - if (type == 0 || name.IsEmpty() || description.IsEmpty()) { - fprintf(stderr, "Could not found a valid PT_NOTE.\n"); - return false; - } - - // Based on write_note_info() in linux/kernel/fs/binfmt_elf.c, notes are - // ordered as follows (NT_PRXFPREG and NT_386_TLS are i386 specific): - // Thread Name Type - // ------------------------------------------------------------------- - // 1st thread CORE NT_PRSTATUS - // process-wide CORE NT_PRPSINFO - // process-wide CORE NT_AUXV - // 1st thread CORE NT_FPREGSET - // 1st thread LINUX NT_PRXFPREG - // 1st thread LINUX NT_386_TLS - // - // 2nd thread CORE NT_PRSTATUS - // 2nd thread CORE NT_FPREGSET - // 2nd thread LINUX NT_PRXFPREG - // 2nd thread LINUX NT_386_TLS - // - // 3rd thread CORE NT_PRSTATUS - // 3rd thread CORE NT_FPREGSET - // 3rd thread LINUX NT_PRXFPREG - // 3rd thread LINUX NT_386_TLS - // - // The following code only works if notes are ordered as expected. - switch (type) { - case NT_PRSTATUS: { - if (description.length() != sizeof(elf_prstatus)) { - fprintf(stderr, "Found NT_PRSTATUS descriptor of unexpected size\n"); - return false; - } - - const elf_prstatus* status = - reinterpret_cast(description.data()); - pid_t pid = status->pr_pid; - ThreadInfo info; - memset(&info, 0, sizeof(ThreadInfo)); - info.tgid = status->pr_pgrp; - info.ppid = status->pr_ppid; -#if defined(__mips__) -#if defined(__ANDROID__) - for (int i = EF_R0; i <= EF_R31; i++) - info.mcontext.gregs[i - EF_R0] = status->pr_reg[i]; -#else // __ANDROID__ - for (int i = EF_REG0; i <= EF_REG31; i++) - info.mcontext.gregs[i - EF_REG0] = status->pr_reg[i]; -#endif // __ANDROID__ - info.mcontext.mdlo = status->pr_reg[EF_LO]; - info.mcontext.mdhi = status->pr_reg[EF_HI]; - info.mcontext.pc = status->pr_reg[EF_CP0_EPC]; -#else // __mips__ - memcpy(&info.regs, status->pr_reg, sizeof(info.regs)); -#endif // __mips__ - if (first_thread) { - crash_thread_ = pid; - crash_signal_ = status->pr_info.si_signo; - } - first_thread = false; - threads_.push_back(pid); - thread_infos_.push_back(info); - break; - } -#if defined(__i386) || defined(__x86_64) - case NT_FPREGSET: { - if (thread_infos_.empty()) - return false; - - ThreadInfo* info = &thread_infos_.back(); - if (description.length() != sizeof(info->fpregs)) { - fprintf(stderr, "Found NT_FPREGSET descriptor of unexpected size\n"); - return false; - } - - memcpy(&info->fpregs, description.data(), sizeof(info->fpregs)); - break; - } -#endif -#if defined(__i386) - case NT_PRXFPREG: { - if (thread_infos_.empty()) - return false; - - ThreadInfo* info = &thread_infos_.back(); - if (description.length() != sizeof(info->fpxregs)) { - fprintf(stderr, "Found NT_PRXFPREG descriptor of unexpected size\n"); - return false; - } - - memcpy(&info->fpxregs, description.data(), sizeof(info->fpxregs)); - break; - } -#endif - } - note = note.GetNextNote(); - } while (note.IsValid()); - - return true; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.h b/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.h deleted file mode 100644 index 8a7c924b..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_core_dumper.h +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_core_dumper.h: Define the google_breakpad::LinuxCoreDumper -// class, which is derived from google_breakpad::LinuxDumper to extract -// information from a crashed process via its core dump and proc files. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_CORE_DUMPER_H_ - -#include "client/linux/minidump_writer/linux_dumper.h" -#include "common/linux/elf_core_dump.h" -#include "common/linux/memory_mapped_file.h" - -namespace google_breakpad { - -class LinuxCoreDumper : public LinuxDumper { - public: - // Constructs a dumper for extracting information of a given process - // with a process ID of |pid| via its core dump file at |core_path| and - // its proc files at |procfs_path|. If |procfs_path| is a copy of - // /proc/, it should contain the following files: - // auxv, cmdline, environ, exe, maps, status - // See LinuxDumper for the purpose of |root_prefix|. - LinuxCoreDumper(pid_t pid, const char* core_path, const char* procfs_path, - const char* root_prefix = ""); - - // Implements LinuxDumper::BuildProcPath(). - // Builds a proc path for a certain pid for a node (/proc//). - // |path| is a character array of at least NAME_MAX bytes to return the - // result.|node| is the final node without any slashes. Return true on - // success. - // - // As this dumper performs a post-mortem dump and makes use of a copy - // of the proc files of the crashed process, this derived method does - // not actually make use of |pid| and always returns a subpath of - // |procfs_path_| regardless of whether |pid| corresponds to the main - // process or a thread of the process, i.e. assuming both the main process - // and its threads have the following proc files with the same content: - // auxv, cmdline, environ, exe, maps, status - virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const; - - // Implements LinuxDumper::CopyFromProcess(). - // Copies content of |length| bytes from a given process |child|, - // starting from |src|, into |dest|. This method extracts the content - // the core dump and fills |dest| with a sequence of marker bytes - // if the expected data is not found in the core dump. Returns true if - // the expected data is found in the core dump. - virtual bool CopyFromProcess(void* dest, pid_t child, const void* src, - size_t length); - - // Implements LinuxDumper::GetThreadInfoByIndex(). - // Reads information about the |index|-th thread of |threads_|. - // Returns true on success. One must have called |ThreadsSuspend| first. - virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info); - - // Implements LinuxDumper::IsPostMortem(). - // Always returns true to indicate that this dumper performs a - // post-mortem dump of a crashed process via a core dump file. - virtual bool IsPostMortem() const; - - // Implements LinuxDumper::ThreadsSuspend(). - // As the dumper performs a post-mortem dump via a core dump file, - // there is no threads to suspend. This method does nothing and - // always returns true. - virtual bool ThreadsSuspend(); - - // Implements LinuxDumper::ThreadsResume(). - // As the dumper performs a post-mortem dump via a core dump file, - // there is no threads to resume. This method does nothing and - // always returns true. - virtual bool ThreadsResume(); - - protected: - // Implements LinuxDumper::EnumerateThreads(). - // Enumerates all threads of the given process into |threads_|. - virtual bool EnumerateThreads(); - - private: - // Path of the core dump file. - const char* core_path_; - - // Path of the directory containing the proc files of the given process, - // which is usually a copy of /proc/. - const char* procfs_path_; - - // Memory-mapped core dump file at |core_path_|. - MemoryMappedFile mapped_core_file_; - - // Content of the core dump file. - ElfCoreDump core_; - - // Thread info found in the core dump file. - wasteful_vector thread_infos_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_HANDLER_LINUX_CORE_DUMPER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.cc b/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.cc deleted file mode 100644 index 060e6c7c..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.cc +++ /dev/null @@ -1,606 +0,0 @@ -// Copyright (c) 2010, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_dumper.cc: Implement google_breakpad::LinuxDumper. -// See linux_dumper.h for details. - -// This code deals with the mechanics of getting information about a crashed -// process. Since this code may run in a compromised address space, the same -// rules apply as detailed at the top of minidump_writer.h: no libc calls and -// use the alternative allocator. - -#include "client/linux/minidump_writer/linux_dumper.h" - -#include -#include -#include -#include -#include -#include - -#include "client/linux/minidump_writer/line_reader.h" -#include "common/linux/elfutils.h" -#include "common/linux/file_id.h" -#include "common/linux/linux_libc_support.h" -#include "common/linux/memory_mapped_file.h" -#include "common/linux/safe_readlink.h" -#include "third_party/lss/linux_syscall_support.h" - -#if defined(__ANDROID__) - -// Android packed relocations definitions are not yet available from the -// NDK header files, so we have to provide them manually here. -#ifndef DT_LOOS -#define DT_LOOS 0x6000000d -#endif -#ifndef DT_ANDROID_REL -static const int DT_ANDROID_REL = DT_LOOS + 2; -#endif -#ifndef DT_ANDROID_RELA -static const int DT_ANDROID_RELA = DT_LOOS + 4; -#endif - -#endif // __ANDROID __ - -static const char kMappedFileUnsafePrefix[] = "/dev/"; -static const char kDeletedSuffix[] = " (deleted)"; -static const char kReservedFlags[] = " ---p"; - -inline static bool IsMappedFileOpenUnsafe( - const google_breakpad::MappingInfo& mapping) { - // It is unsafe to attempt to open a mapped file that lives under /dev, - // because the semantics of the open may be driver-specific so we'd risk - // hanging the crash dumper. And a file in /dev/ almost certainly has no - // ELF file identifier anyways. - return my_strncmp(mapping.name, - kMappedFileUnsafePrefix, - sizeof(kMappedFileUnsafePrefix) - 1) == 0; -} - -namespace google_breakpad { - -// All interesting auvx entry types are below AT_SYSINFO_EHDR -#define AT_MAX AT_SYSINFO_EHDR - -LinuxDumper::LinuxDumper(pid_t pid, const char* root_prefix) - : pid_(pid), - root_prefix_(root_prefix), - crash_address_(0), - crash_signal_(0), - crash_thread_(pid), - threads_(&allocator_, 8), - mappings_(&allocator_), - auxv_(&allocator_, AT_MAX + 1) { - assert(root_prefix_ && my_strlen(root_prefix_) < PATH_MAX); - // The passed-in size to the constructor (above) is only a hint. - // Must call .resize() to do actual initialization of the elements. - auxv_.resize(AT_MAX + 1); -} - -LinuxDumper::~LinuxDumper() { -} - -bool LinuxDumper::Init() { - return ReadAuxv() && EnumerateThreads() && EnumerateMappings(); -} - -bool LinuxDumper::LateInit() { -#if defined(__ANDROID__) - LatePostprocessMappings(); -#endif - return true; -} - -bool -LinuxDumper::ElfFileIdentifierForMapping(const MappingInfo& mapping, - bool member, - unsigned int mapping_id, - uint8_t identifier[sizeof(MDGUID)]) { - assert(!member || mapping_id < mappings_.size()); - my_memset(identifier, 0, sizeof(MDGUID)); - if (IsMappedFileOpenUnsafe(mapping)) - return false; - - // Special-case linux-gate because it's not a real file. - if (my_strcmp(mapping.name, kLinuxGateLibraryName) == 0) { - void* linux_gate = NULL; - if (pid_ == sys_getpid()) { - linux_gate = reinterpret_cast(mapping.start_addr); - } else { - linux_gate = allocator_.Alloc(mapping.size); - CopyFromProcess(linux_gate, pid_, - reinterpret_cast(mapping.start_addr), - mapping.size); - } - return FileID::ElfFileIdentifierFromMappedFile(linux_gate, identifier); - } - - char filename[PATH_MAX]; - if (!GetMappingAbsolutePath(mapping, filename)) - return false; - bool filename_modified = HandleDeletedFileInMapping(filename); - - MemoryMappedFile mapped_file(filename, mapping.offset); - if (!mapped_file.data() || mapped_file.size() < SELFMAG) - return false; - - bool success = - FileID::ElfFileIdentifierFromMappedFile(mapped_file.data(), identifier); - if (success && member && filename_modified) { - mappings_[mapping_id]->name[my_strlen(mapping.name) - - sizeof(kDeletedSuffix) + 1] = '\0'; - } - - return success; -} - -bool LinuxDumper::GetMappingAbsolutePath(const MappingInfo& mapping, - char path[PATH_MAX]) const { - return my_strlcpy(path, root_prefix_, PATH_MAX) < PATH_MAX && - my_strlcat(path, mapping.name, PATH_MAX) < PATH_MAX; -} - -namespace { -bool ElfFileSoNameFromMappedFile( - const void* elf_base, char* soname, size_t soname_size) { - if (!IsValidElf(elf_base)) { - // Not ELF - return false; - } - - const void* segment_start; - size_t segment_size; - int elf_class; - if (!FindElfSection(elf_base, ".dynamic", SHT_DYNAMIC, - &segment_start, &segment_size, &elf_class)) { - // No dynamic section - return false; - } - - const void* dynstr_start; - size_t dynstr_size; - if (!FindElfSection(elf_base, ".dynstr", SHT_STRTAB, - &dynstr_start, &dynstr_size, &elf_class)) { - // No dynstr section - return false; - } - - const ElfW(Dyn)* dynamic = static_cast(segment_start); - size_t dcount = segment_size / sizeof(ElfW(Dyn)); - for (const ElfW(Dyn)* dyn = dynamic; dyn < dynamic + dcount; ++dyn) { - if (dyn->d_tag == DT_SONAME) { - const char* dynstr = static_cast(dynstr_start); - if (dyn->d_un.d_val >= dynstr_size) { - // Beyond the end of the dynstr section - return false; - } - const char* str = dynstr + dyn->d_un.d_val; - const size_t maxsize = dynstr_size - dyn->d_un.d_val; - my_strlcpy(soname, str, maxsize < soname_size ? maxsize : soname_size); - return true; - } - } - - // Did not find SONAME - return false; -} - -// Find the shared object name (SONAME) by examining the ELF information -// for |mapping|. If the SONAME is found copy it into the passed buffer -// |soname| and return true. The size of the buffer is |soname_size|. -// The SONAME will be truncated if it is too long to fit in the buffer. -bool ElfFileSoName(const LinuxDumper& dumper, - const MappingInfo& mapping, char* soname, size_t soname_size) { - if (IsMappedFileOpenUnsafe(mapping)) { - // Not safe - return false; - } - - char filename[PATH_MAX]; - if (!dumper.GetMappingAbsolutePath(mapping, filename)) - return false; - - MemoryMappedFile mapped_file(filename, mapping.offset); - if (!mapped_file.data() || mapped_file.size() < SELFMAG) { - // mmap failed - return false; - } - - return ElfFileSoNameFromMappedFile(mapped_file.data(), soname, soname_size); -} - -} // namespace - - -void LinuxDumper::GetMappingEffectiveNameAndPath(const MappingInfo& mapping, - char* file_path, - size_t file_path_size, - char* file_name, - size_t file_name_size) { - my_strlcpy(file_path, mapping.name, file_path_size); - - // If an executable is mapped from a non-zero offset, this is likely because - // the executable was loaded directly from inside an archive file (e.g., an - // apk on Android). We try to find the name of the shared object (SONAME) by - // looking in the file for ELF sections. - bool mapped_from_archive = false; - if (mapping.exec && mapping.offset != 0) { - mapped_from_archive = - ElfFileSoName(*this, mapping, file_name, file_name_size); - } - - if (mapped_from_archive) { - // Some tools (e.g., stackwalk) extract the basename from the pathname. In - // this case, we append the file_name to the mapped archive path as follows: - // file_name := libname.so - // file_path := /path/to/ARCHIVE.APK/libname.so - if (my_strlen(file_path) + 1 + my_strlen(file_name) < file_path_size) { - my_strlcat(file_path, "/", file_path_size); - my_strlcat(file_path, file_name, file_path_size); - } - } else { - // Common case: - // file_path := /path/to/libname.so - // file_name := libname.so - const char* basename = my_strrchr(file_path, '/'); - basename = basename == NULL ? file_path : (basename + 1); - my_strlcpy(file_name, basename, file_name_size); - } -} - -bool LinuxDumper::ReadAuxv() { - char auxv_path[NAME_MAX]; - if (!BuildProcPath(auxv_path, pid_, "auxv")) { - return false; - } - - int fd = sys_open(auxv_path, O_RDONLY, 0); - if (fd < 0) { - return false; - } - - elf_aux_entry one_aux_entry; - bool res = false; - while (sys_read(fd, - &one_aux_entry, - sizeof(elf_aux_entry)) == sizeof(elf_aux_entry) && - one_aux_entry.a_type != AT_NULL) { - if (one_aux_entry.a_type <= AT_MAX) { - auxv_[one_aux_entry.a_type] = one_aux_entry.a_un.a_val; - res = true; - } - } - sys_close(fd); - return res; -} - -bool LinuxDumper::EnumerateMappings() { - char maps_path[NAME_MAX]; - if (!BuildProcPath(maps_path, pid_, "maps")) - return false; - - // linux_gate_loc is the beginning of the kernel's mapping of - // linux-gate.so in the process. It doesn't actually show up in the - // maps list as a filename, but it can be found using the AT_SYSINFO_EHDR - // aux vector entry, which gives the information necessary to special - // case its entry when creating the list of mappings. - // See http://www.trilithium.com/johan/2005/08/linux-gate/ for more - // information. - const void* linux_gate_loc = - reinterpret_cast(auxv_[AT_SYSINFO_EHDR]); - // Although the initial executable is usually the first mapping, it's not - // guaranteed (see http://crosbug.com/25355); therefore, try to use the - // actual entry point to find the mapping. - const void* entry_point_loc = reinterpret_cast(auxv_[AT_ENTRY]); - - const int fd = sys_open(maps_path, O_RDONLY, 0); - if (fd < 0) - return false; - LineReader* const line_reader = new(allocator_) LineReader(fd); - - const char* line; - unsigned line_len; - while (line_reader->GetNextLine(&line, &line_len)) { - uintptr_t start_addr, end_addr, offset; - - const char* i1 = my_read_hex_ptr(&start_addr, line); - if (*i1 == '-') { - const char* i2 = my_read_hex_ptr(&end_addr, i1 + 1); - if (*i2 == ' ') { - bool exec = (*(i2 + 3) == 'x'); - const char* i3 = my_read_hex_ptr(&offset, i2 + 6 /* skip ' rwxp ' */); - if (*i3 == ' ') { - const char* name = NULL; - // Only copy name if the name is a valid path name, or if - // it's the VDSO image. - if (((name = my_strchr(line, '/')) == NULL) && - linux_gate_loc && - reinterpret_cast(start_addr) == linux_gate_loc) { - name = kLinuxGateLibraryName; - offset = 0; - } - // Merge adjacent mappings with the same name into one module, - // assuming they're a single library mapped by the dynamic linker - if (name && !mappings_.empty()) { - MappingInfo* module = mappings_.back(); - if ((start_addr == module->start_addr + module->size) && - (my_strlen(name) == my_strlen(module->name)) && - (my_strncmp(name, module->name, my_strlen(name)) == 0) && - (exec == module->exec)) { - module->size = end_addr - module->start_addr; - line_reader->PopLine(line_len); - continue; - } - } - // Also merge mappings that result from address ranges that the - // linker reserved but which a loaded library did not use. These - // appear as an anonymous private mapping with no access flags set - // and which directly follow an executable mapping. - if (!name && !mappings_.empty()) { - MappingInfo* module = mappings_.back(); - if ((start_addr == module->start_addr + module->size) && - module->exec && - module->name[0] == '/' && - offset == 0 && my_strncmp(i2, - kReservedFlags, - sizeof(kReservedFlags) - 1) == 0) { - module->size = end_addr - module->start_addr; - line_reader->PopLine(line_len); - continue; - } - } - MappingInfo* const module = new(allocator_) MappingInfo; - my_memset(module, 0, sizeof(MappingInfo)); - module->start_addr = start_addr; - module->size = end_addr - start_addr; - module->offset = offset; - module->exec = exec; - if (name != NULL) { - const unsigned l = my_strlen(name); - if (l < sizeof(module->name)) - my_memcpy(module->name, name, l); - } - // If this is the entry-point mapping, and it's not already the - // first one, then we need to make it be first. This is because - // the minidump format assumes the first module is the one that - // corresponds to the main executable (as codified in - // processor/minidump.cc:MinidumpModuleList::GetMainModule()). - if (entry_point_loc && - (entry_point_loc >= - reinterpret_cast(module->start_addr)) && - (entry_point_loc < - reinterpret_cast(module->start_addr+module->size)) && - !mappings_.empty()) { - // push the module onto the front of the list. - mappings_.resize(mappings_.size() + 1); - for (size_t idx = mappings_.size() - 1; idx > 0; idx--) - mappings_[idx] = mappings_[idx - 1]; - mappings_[0] = module; - } else { - mappings_.push_back(module); - } - } - } - } - line_reader->PopLine(line_len); - } - - sys_close(fd); - - return !mappings_.empty(); -} - -#if defined(__ANDROID__) - -bool LinuxDumper::GetLoadedElfHeader(uintptr_t start_addr, ElfW(Ehdr)* ehdr) { - CopyFromProcess(ehdr, pid_, - reinterpret_cast(start_addr), - sizeof(*ehdr)); - return my_memcmp(&ehdr->e_ident, ELFMAG, SELFMAG) == 0; -} - -void LinuxDumper::ParseLoadedElfProgramHeaders(ElfW(Ehdr)* ehdr, - uintptr_t start_addr, - uintptr_t* min_vaddr_ptr, - uintptr_t* dyn_vaddr_ptr, - size_t* dyn_count_ptr) { - uintptr_t phdr_addr = start_addr + ehdr->e_phoff; - - const uintptr_t max_addr = UINTPTR_MAX; - uintptr_t min_vaddr = max_addr; - uintptr_t dyn_vaddr = 0; - size_t dyn_count = 0; - - for (size_t i = 0; i < ehdr->e_phnum; ++i) { - ElfW(Phdr) phdr; - CopyFromProcess(&phdr, pid_, - reinterpret_cast(phdr_addr), - sizeof(phdr)); - if (phdr.p_type == PT_LOAD && phdr.p_vaddr < min_vaddr) { - min_vaddr = phdr.p_vaddr; - } - if (phdr.p_type == PT_DYNAMIC) { - dyn_vaddr = phdr.p_vaddr; - dyn_count = phdr.p_memsz / sizeof(ElfW(Dyn)); - } - phdr_addr += sizeof(phdr); - } - - *min_vaddr_ptr = min_vaddr; - *dyn_vaddr_ptr = dyn_vaddr; - *dyn_count_ptr = dyn_count; -} - -bool LinuxDumper::HasAndroidPackedRelocations(uintptr_t load_bias, - uintptr_t dyn_vaddr, - size_t dyn_count) { - uintptr_t dyn_addr = load_bias + dyn_vaddr; - for (size_t i = 0; i < dyn_count; ++i) { - ElfW(Dyn) dyn; - CopyFromProcess(&dyn, pid_, - reinterpret_cast(dyn_addr), - sizeof(dyn)); - if (dyn.d_tag == DT_ANDROID_REL || dyn.d_tag == DT_ANDROID_RELA) { - return true; - } - dyn_addr += sizeof(dyn); - } - return false; -} - -uintptr_t LinuxDumper::GetEffectiveLoadBias(ElfW(Ehdr)* ehdr, - uintptr_t start_addr) { - uintptr_t min_vaddr = 0; - uintptr_t dyn_vaddr = 0; - size_t dyn_count = 0; - ParseLoadedElfProgramHeaders(ehdr, start_addr, - &min_vaddr, &dyn_vaddr, &dyn_count); - // If |min_vaddr| is non-zero and we find Android packed relocation tags, - // return the effective load bias. - if (min_vaddr != 0) { - const uintptr_t load_bias = start_addr - min_vaddr; - if (HasAndroidPackedRelocations(load_bias, dyn_vaddr, dyn_count)) { - return load_bias; - } - } - // Either |min_vaddr| is zero, or it is non-zero but we did not find the - // expected Android packed relocations tags. - return start_addr; -} - -void LinuxDumper::LatePostprocessMappings() { - for (size_t i = 0; i < mappings_.size(); ++i) { - // Only consider exec mappings that indicate a file path was mapped, and - // where the ELF header indicates a mapped shared library. - MappingInfo* mapping = mappings_[i]; - if (!(mapping->exec && mapping->name[0] == '/')) { - continue; - } - ElfW(Ehdr) ehdr; - if (!GetLoadedElfHeader(mapping->start_addr, &ehdr)) { - continue; - } - if (ehdr.e_type == ET_DYN) { - // Compute the effective load bias for this mapped library, and update - // the mapping to hold that rather than |start_addr|, at the same time - // adjusting |size| to account for the change in |start_addr|. Where - // the library does not contain Android packed relocations, - // GetEffectiveLoadBias() returns |start_addr| and the mapping entry - // is not changed. - const uintptr_t load_bias = GetEffectiveLoadBias(&ehdr, - mapping->start_addr); - mapping->size += mapping->start_addr - load_bias; - mapping->start_addr = load_bias; - } - } -} - -#endif // __ANDROID__ - -// Get information about the stack, given the stack pointer. We don't try to -// walk the stack since we might not have all the information needed to do -// unwind. So we just grab, up to, 32k of stack. -bool LinuxDumper::GetStackInfo(const void** stack, size_t* stack_len, - uintptr_t int_stack_pointer) { - // Move the stack pointer to the bottom of the page that it's in. - const uintptr_t page_size = getpagesize(); - - uint8_t* const stack_pointer = - reinterpret_cast(int_stack_pointer & ~(page_size - 1)); - - // The number of bytes of stack which we try to capture. - static const ptrdiff_t kStackToCapture = 32 * 1024; - - const MappingInfo* mapping = FindMapping(stack_pointer); - if (!mapping) - return false; - const ptrdiff_t offset = stack_pointer - - reinterpret_cast(mapping->start_addr); - const ptrdiff_t distance_to_end = - static_cast(mapping->size) - offset; - *stack_len = distance_to_end > kStackToCapture ? - kStackToCapture : distance_to_end; - *stack = stack_pointer; - return true; -} - -// Find the mapping which the given memory address falls in. -const MappingInfo* LinuxDumper::FindMapping(const void* address) const { - const uintptr_t addr = (uintptr_t) address; - - for (size_t i = 0; i < mappings_.size(); ++i) { - const uintptr_t start = static_cast(mappings_[i]->start_addr); - if (addr >= start && addr - start < mappings_[i]->size) - return mappings_[i]; - } - - return NULL; -} - -bool LinuxDumper::HandleDeletedFileInMapping(char* path) const { - static const size_t kDeletedSuffixLen = sizeof(kDeletedSuffix) - 1; - - // Check for ' (deleted)' in |path|. - // |path| has to be at least as long as "/x (deleted)". - const size_t path_len = my_strlen(path); - if (path_len < kDeletedSuffixLen + 2) - return false; - if (my_strncmp(path + path_len - kDeletedSuffixLen, kDeletedSuffix, - kDeletedSuffixLen) != 0) { - return false; - } - - // Check |path| against the /proc/pid/exe 'symlink'. - char exe_link[NAME_MAX]; - if (!BuildProcPath(exe_link, pid_, "exe")) - return false; - MappingInfo new_mapping = {0}; - if (!SafeReadLink(exe_link, new_mapping.name)) - return false; - char new_path[PATH_MAX]; - if (!GetMappingAbsolutePath(new_mapping, new_path)) - return false; - if (my_strcmp(path, new_path) != 0) - return false; - - // Check to see if someone actually named their executable 'foo (deleted)'. - struct kernel_stat exe_stat; - struct kernel_stat new_path_stat; - if (sys_stat(exe_link, &exe_stat) == 0 && - sys_stat(new_path, &new_path_stat) == 0 && - exe_stat.st_dev == new_path_stat.st_dev && - exe_stat.st_ino == new_path_stat.st_ino) { - return false; - } - - my_memcpy(path, exe_link, NAME_MAX); - return true; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.h b/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.h deleted file mode 100644 index f7fe1dd9..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_dumper.h +++ /dev/null @@ -1,264 +0,0 @@ -// Copyright (c) 2010, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_dumper.h: Define the google_breakpad::LinuxDumper class, which -// is a base class for extracting information of a crashed process. It -// was originally a complete implementation using the ptrace API, but -// has been refactored to allow derived implementations supporting both -// ptrace and core dump. A portion of the original implementation is now -// in google_breakpad::LinuxPtraceDumper (see linux_ptrace_dumper.h for -// details). - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_DUMPER_H_ - -#include -#if defined(__ANDROID__) -#include -#endif -#include -#include -#include -#include - -#include "client/linux/dump_writer_common/mapping_info.h" -#include "client/linux/dump_writer_common/thread_info.h" -#include "common/memory.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -// Typedef for our parsing of the auxv variables in /proc/pid/auxv. -#if defined(__i386) || defined(__ARM_EABI__) || \ - (defined(__mips__) && _MIPS_SIM == _ABIO32) -typedef Elf32_auxv_t elf_aux_entry; -#elif defined(__x86_64) || defined(__aarch64__) || \ - (defined(__mips__) && _MIPS_SIM != _ABIO32) -typedef Elf64_auxv_t elf_aux_entry; -#endif - -typedef __typeof__(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t; - -// When we find the VDSO mapping in the process's address space, this -// is the name we use for it when writing it to the minidump. -// This should always be less than NAME_MAX! -const char kLinuxGateLibraryName[] = "linux-gate.so"; - -class LinuxDumper { - public: - // The |root_prefix| is prepended to mapping paths before opening them, which - // is useful if the crash originates from a chroot. - explicit LinuxDumper(pid_t pid, const char* root_prefix = ""); - - virtual ~LinuxDumper(); - - // Parse the data for |threads| and |mappings|. - virtual bool Init(); - - // Take any actions that could not be taken in Init(). LateInit() is - // called after all other caller's initialization is complete, and in - // particular after it has called ThreadsSuspend(), so that ptrace is - // available. - virtual bool LateInit(); - - // Return true if the dumper performs a post-mortem dump. - virtual bool IsPostMortem() const = 0; - - // Suspend/resume all threads in the given process. - virtual bool ThreadsSuspend() = 0; - virtual bool ThreadsResume() = 0; - - // Read information about the |index|-th thread of |threads_|. - // Returns true on success. One must have called |ThreadsSuspend| first. - virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info) = 0; - - // These are only valid after a call to |Init|. - const wasteful_vector &threads() { return threads_; } - const wasteful_vector &mappings() { return mappings_; } - const MappingInfo* FindMapping(const void* address) const; - const wasteful_vector& auxv() { return auxv_; } - - // Find a block of memory to take as the stack given the top of stack pointer. - // stack: (output) the lowest address in the memory area - // stack_len: (output) the length of the memory area - // stack_top: the current top of the stack - bool GetStackInfo(const void** stack, size_t* stack_len, uintptr_t stack_top); - - PageAllocator* allocator() { return &allocator_; } - - // Copy content of |length| bytes from a given process |child|, - // starting from |src|, into |dest|. Returns true on success. - virtual bool CopyFromProcess(void* dest, pid_t child, const void* src, - size_t length) = 0; - - // Builds a proc path for a certain pid for a node (/proc//). - // |path| is a character array of at least NAME_MAX bytes to return the - // result.|node| is the final node without any slashes. Returns true on - // success. - virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const = 0; - - // Generate a File ID from the .text section of a mapped entry. - // If not a member, mapping_id is ignored. This method can also manipulate the - // |mapping|.name to truncate "(deleted)" from the file name if necessary. - bool ElfFileIdentifierForMapping(const MappingInfo& mapping, - bool member, - unsigned int mapping_id, - uint8_t identifier[sizeof(MDGUID)]); - - uintptr_t crash_address() const { return crash_address_; } - void set_crash_address(uintptr_t crash_address) { - crash_address_ = crash_address; - } - - int crash_signal() const { return crash_signal_; } - void set_crash_signal(int crash_signal) { crash_signal_ = crash_signal; } - - pid_t crash_thread() const { return crash_thread_; } - void set_crash_thread(pid_t crash_thread) { crash_thread_ = crash_thread; } - - // Concatenates the |root_prefix_| and |mapping| path. Writes into |path| and - // returns true unless the string is too long. - bool GetMappingAbsolutePath(const MappingInfo& mapping, - char path[PATH_MAX]) const; - - // Extracts the effective path and file name of from |mapping|. In most cases - // the effective name/path are just the mapping's path and basename. In some - // other cases, however, a library can be mapped from an archive (e.g., when - // loading .so libs from an apk on Android) and this method is able to - // reconstruct the original file name. - void GetMappingEffectiveNameAndPath(const MappingInfo& mapping, - char* file_path, - size_t file_path_size, - char* file_name, - size_t file_name_size); - - protected: - bool ReadAuxv(); - - virtual bool EnumerateMappings(); - - virtual bool EnumerateThreads() = 0; - - // For the case where a running program has been deleted, it'll show up in - // /proc/pid/maps as "/path/to/program (deleted)". If this is the case, then - // see if '/path/to/program (deleted)' matches /proc/pid/exe and return - // /proc/pid/exe in |path| so ELF identifier generation works correctly. This - // also checks to see if '/path/to/program (deleted)' exists, so it does not - // get fooled by a poorly named binary. - // For programs that don't end with ' (deleted)', this is a no-op. - // This assumes |path| is a buffer with length NAME_MAX. - // Returns true if |path| is modified. - bool HandleDeletedFileInMapping(char* path) const; - - // ID of the crashed process. - const pid_t pid_; - - // Path of the root directory to which mapping paths are relative. - const char* const root_prefix_; - - // Virtual address at which the process crashed. - uintptr_t crash_address_; - - // Signal that terminated the crashed process. - int crash_signal_; - - // ID of the crashed thread. - pid_t crash_thread_; - - mutable PageAllocator allocator_; - - // IDs of all the threads. - wasteful_vector threads_; - - // Info from /proc//maps. - wasteful_vector mappings_; - - // Info from /proc//auxv - wasteful_vector auxv_; - -#if defined(__ANDROID__) - private: - // Android M and later support packed ELF relocations in shared libraries. - // Packing relocations changes the vaddr of the LOAD segments, such that - // the effective load bias is no longer the same as the start address of - // the memory mapping containing the executable parts of the library. The - // packing is applied to the stripped library run on the target, but not to - // any other library, and in particular not to the library used to generate - // breakpad symbols. As a result, we need to adjust the |start_addr| for - // any mapping that results from a shared library that contains Android - // packed relocations, so that it properly represents the effective library - // load bias. The following functions support this adjustment. - - // Check that a given mapping at |start_addr| is for an ELF shared library. - // If it is, place the ELF header in |ehdr| and return true. - // The first LOAD segment in an ELF shared library has offset zero, so the - // ELF file header is at the start of this map entry, and in already mapped - // memory. - bool GetLoadedElfHeader(uintptr_t start_addr, ElfW(Ehdr)* ehdr); - - // For the ELF file mapped at |start_addr|, iterate ELF program headers to - // find the min vaddr of all program header LOAD segments, the vaddr for - // the DYNAMIC segment, and a count of DYNAMIC entries. Return values in - // |min_vaddr_ptr|, |dyn_vaddr_ptr|, and |dyn_count_ptr|. - // The program header table is also in already mapped memory. - void ParseLoadedElfProgramHeaders(ElfW(Ehdr)* ehdr, - uintptr_t start_addr, - uintptr_t* min_vaddr_ptr, - uintptr_t* dyn_vaddr_ptr, - size_t* dyn_count_ptr); - - // Search the DYNAMIC tags for the ELF file with the given |load_bias|, and - // return true if the tags indicate that the file contains Android packed - // relocations. Dynamic tags are found at |dyn_vaddr| past the |load_bias|. - bool HasAndroidPackedRelocations(uintptr_t load_bias, - uintptr_t dyn_vaddr, - size_t dyn_count); - - // If the ELF file mapped at |start_addr| contained Android packed - // relocations, return the load bias that the system linker (or Chromium - // crazy linker) will have used. If the file did not contain Android - // packed relocations, returns |start_addr|, indicating that no adjustment - // is necessary. - // The effective load bias is |start_addr| adjusted downwards by the - // min vaddr in the library LOAD segments. - uintptr_t GetEffectiveLoadBias(ElfW(Ehdr)* ehdr, uintptr_t start_addr); - - // Called from LateInit(). Iterates |mappings_| and rewrites the |start_addr| - // field of any that represent ELF shared libraries with Android packed - // relocations, so that |start_addr| is the load bias that the system linker - // (or Chromium crazy linker) used. This value matches the addresses produced - // when the non-relocation-packed library is used for breakpad symbol - // generation. - void LatePostprocessMappings(); -#endif // __ANDROID__ -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_HANDLER_LINUX_DUMPER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc b/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc deleted file mode 100644 index c35e0e95..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc +++ /dev/null @@ -1,355 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_ptrace_dumper.cc: Implement google_breakpad::LinuxPtraceDumper. -// See linux_ptrace_dumper.h for detals. -// This class was originally splitted from google_breakpad::LinuxDumper. - -// This code deals with the mechanics of getting information about a crashed -// process. Since this code may run in a compromised address space, the same -// rules apply as detailed at the top of minidump_writer.h: no libc calls and -// use the alternative allocator. - -#include "client/linux/minidump_writer/linux_ptrace_dumper.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if defined(__i386) -#include -#endif - -#include "client/linux/minidump_writer/directory_reader.h" -#include "client/linux/minidump_writer/line_reader.h" -#include "common/linux/linux_libc_support.h" -#include "third_party/lss/linux_syscall_support.h" - -// Suspends a thread by attaching to it. -static bool SuspendThread(pid_t pid) { - // This may fail if the thread has just died or debugged. - errno = 0; - if (sys_ptrace(PTRACE_ATTACH, pid, NULL, NULL) != 0 && - errno != 0) { - return false; - } - while (sys_waitpid(pid, NULL, __WALL) < 0) { - if (errno != EINTR) { - sys_ptrace(PTRACE_DETACH, pid, NULL, NULL); - return false; - } - } -#if defined(__i386) || defined(__x86_64) - // On x86, the stack pointer is NULL or -1, when executing trusted code in - // the seccomp sandbox. Not only does this cause difficulties down the line - // when trying to dump the thread's stack, it also results in the minidumps - // containing information about the trusted threads. This information is - // generally completely meaningless and just pollutes the minidumps. - // We thus test the stack pointer and exclude any threads that are part of - // the seccomp sandbox's trusted code. - user_regs_struct regs; - if (sys_ptrace(PTRACE_GETREGS, pid, NULL, ®s) == -1 || -#if defined(__i386) - !regs.esp -#elif defined(__x86_64) - !regs.rsp -#endif - ) { - sys_ptrace(PTRACE_DETACH, pid, NULL, NULL); - return false; - } -#endif - return true; -} - -// Resumes a thread by detaching from it. -static bool ResumeThread(pid_t pid) { - return sys_ptrace(PTRACE_DETACH, pid, NULL, NULL) >= 0; -} - -namespace google_breakpad { - -LinuxPtraceDumper::LinuxPtraceDumper(pid_t pid) - : LinuxDumper(pid), - threads_suspended_(false) { -} - -bool LinuxPtraceDumper::BuildProcPath(char* path, pid_t pid, - const char* node) const { - if (!path || !node || pid <= 0) - return false; - - size_t node_len = my_strlen(node); - if (node_len == 0) - return false; - - const unsigned pid_len = my_uint_len(pid); - const size_t total_length = 6 + pid_len + 1 + node_len; - if (total_length >= NAME_MAX) - return false; - - my_memcpy(path, "/proc/", 6); - my_uitos(path + 6, pid, pid_len); - path[6 + pid_len] = '/'; - my_memcpy(path + 6 + pid_len + 1, node, node_len); - path[total_length] = '\0'; - return true; -} - -bool LinuxPtraceDumper::CopyFromProcess(void* dest, pid_t child, - const void* src, size_t length) { - unsigned long tmp = 55; - size_t done = 0; - static const size_t word_size = sizeof(tmp); - uint8_t* const local = (uint8_t*) dest; - uint8_t* const remote = (uint8_t*) src; - - while (done < length) { - const size_t l = (length - done > word_size) ? word_size : (length - done); - if (sys_ptrace(PTRACE_PEEKDATA, child, remote + done, &tmp) == -1) { - tmp = 0; - } - my_memcpy(local + done, &tmp, l); - done += l; - } - return true; -} - -// Read thread info from /proc/$pid/status. -// Fill out the |tgid|, |ppid| and |pid| members of |info|. If unavailable, -// these members are set to -1. Returns true iff all three members are -// available. -bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) { - if (index >= threads_.size()) - return false; - - pid_t tid = threads_[index]; - - assert(info != NULL); - char status_path[NAME_MAX]; - if (!BuildProcPath(status_path, tid, "status")) - return false; - - const int fd = sys_open(status_path, O_RDONLY, 0); - if (fd < 0) - return false; - - LineReader* const line_reader = new(allocator_) LineReader(fd); - const char* line; - unsigned line_len; - - info->ppid = info->tgid = -1; - - while (line_reader->GetNextLine(&line, &line_len)) { - if (my_strncmp("Tgid:\t", line, 6) == 0) { - my_strtoui(&info->tgid, line + 6); - } else if (my_strncmp("PPid:\t", line, 6) == 0) { - my_strtoui(&info->ppid, line + 6); - } - - line_reader->PopLine(line_len); - } - sys_close(fd); - - if (info->ppid == -1 || info->tgid == -1) - return false; - -#ifdef PTRACE_GETREGSET - struct iovec io; - info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len); - if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) { - return false; - } - - info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len); - if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) { - return false; - } -#else // PTRACE_GETREGSET - void* gp_addr; - info->GetGeneralPurposeRegisters(&gp_addr, NULL); - if (sys_ptrace(PTRACE_GETREGS, tid, NULL, gp_addr) == -1) { - return false; - } - -#if !(defined(__ANDROID__) && defined(__ARM_EABI__)) - // When running an arm build on an arm64 device, attempting to get the - // floating point registers fails. On Android, the floating point registers - // aren't written to the cpu context anyway, so just don't get them here. - // See http://crbug.com/508324 - void* fp_addr; - info->GetFloatingPointRegisters(&fp_addr, NULL); - if (sys_ptrace(PTRACE_GETFPREGS, tid, NULL, fp_addr) == -1) { - return false; - } -#endif -#endif // PTRACE_GETREGSET - -#if defined(__i386) -#if !defined(bit_FXSAVE) // e.g. Clang -#define bit_FXSAVE bit_FXSR -#endif - // Detect if the CPU supports the FXSAVE/FXRSTOR instructions - int eax, ebx, ecx, edx; - __cpuid(1, eax, ebx, ecx, edx); - if (edx & bit_FXSAVE) { - if (sys_ptrace(PTRACE_GETFPXREGS, tid, NULL, &info->fpxregs) == -1) { - return false; - } - } else { - memset(&info->fpxregs, 0, sizeof(info->fpxregs)); - } -#endif // defined(__i386) - -#if defined(__i386) || defined(__x86_64) - for (unsigned i = 0; i < ThreadInfo::kNumDebugRegisters; ++i) { - if (sys_ptrace( - PTRACE_PEEKUSER, tid, - reinterpret_cast (offsetof(struct user, - u_debugreg[0]) + i * - sizeof(debugreg_t)), - &info->dregs[i]) == -1) { - return false; - } - } -#endif - -#if defined(__mips__) - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE), &info->mcontext.hi1); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE + 1), &info->mcontext.lo1); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE + 2), &info->mcontext.hi2); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE + 3), &info->mcontext.lo2); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE + 4), &info->mcontext.hi3); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_BASE + 5), &info->mcontext.lo3); - sys_ptrace(PTRACE_PEEKUSER, tid, - reinterpret_cast(DSP_CONTROL), &info->mcontext.dsp); -#endif - - const uint8_t* stack_pointer; -#if defined(__i386) - my_memcpy(&stack_pointer, &info->regs.esp, sizeof(info->regs.esp)); -#elif defined(__x86_64) - my_memcpy(&stack_pointer, &info->regs.rsp, sizeof(info->regs.rsp)); -#elif defined(__ARM_EABI__) - my_memcpy(&stack_pointer, &info->regs.ARM_sp, sizeof(info->regs.ARM_sp)); -#elif defined(__aarch64__) - my_memcpy(&stack_pointer, &info->regs.sp, sizeof(info->regs.sp)); -#elif defined(__mips__) - stack_pointer = - reinterpret_cast(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]); -#else -#error "This code hasn't been ported to your platform yet." -#endif - info->stack_pointer = reinterpret_cast(stack_pointer); - - return true; -} - -bool LinuxPtraceDumper::IsPostMortem() const { - return false; -} - -bool LinuxPtraceDumper::ThreadsSuspend() { - if (threads_suspended_) - return true; - for (size_t i = 0; i < threads_.size(); ++i) { - if (!SuspendThread(threads_[i])) { - // If the thread either disappeared before we could attach to it, or if - // it was part of the seccomp sandbox's trusted code, it is OK to - // silently drop it from the minidump. - if (i < threads_.size() - 1) { - my_memmove(&threads_[i], &threads_[i + 1], - (threads_.size() - i - 1) * sizeof(threads_[i])); - } - threads_.resize(threads_.size() - 1); - --i; - } - } - threads_suspended_ = true; - return threads_.size() > 0; -} - -bool LinuxPtraceDumper::ThreadsResume() { - if (!threads_suspended_) - return false; - bool good = true; - for (size_t i = 0; i < threads_.size(); ++i) - good &= ResumeThread(threads_[i]); - threads_suspended_ = false; - return good; -} - -// Parse /proc/$pid/task to list all the threads of the process identified by -// pid. -bool LinuxPtraceDumper::EnumerateThreads() { - char task_path[NAME_MAX]; - if (!BuildProcPath(task_path, pid_, "task")) - return false; - - const int fd = sys_open(task_path, O_RDONLY | O_DIRECTORY, 0); - if (fd < 0) - return false; - DirectoryReader* dir_reader = new(allocator_) DirectoryReader(fd); - - // The directory may contain duplicate entries which we filter by assuming - // that they are consecutive. - int last_tid = -1; - const char* dent_name; - while (dir_reader->GetNextEntry(&dent_name)) { - if (my_strcmp(dent_name, ".") && - my_strcmp(dent_name, "..")) { - int tid = 0; - if (my_strtoui(&tid, dent_name) && - last_tid != tid) { - last_tid = tid; - threads_.push_back(tid); - } - } - dir_reader->PopEntry(); - } - - sys_close(fd); - return true; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h b/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h deleted file mode 100644 index 2ce834b0..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.h +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// linux_ptrace_dumper.h: Define the google_breakpad::LinuxPtraceDumper -// class, which is derived from google_breakpad::LinuxDumper to extract -// information from a crashed process via ptrace. -// This class was originally splitted from google_breakpad::LinuxDumper. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_LINUX_PTRACE_DUMPER_H_ - -#include "client/linux/minidump_writer/linux_dumper.h" - -namespace google_breakpad { - -class LinuxPtraceDumper : public LinuxDumper { - public: - // Constructs a dumper for extracting information of a given process - // with a process ID of |pid|. - explicit LinuxPtraceDumper(pid_t pid); - - // Implements LinuxDumper::BuildProcPath(). - // Builds a proc path for a certain pid for a node (/proc//). - // |path| is a character array of at least NAME_MAX bytes to return the - // result. |node| is the final node without any slashes. Returns true on - // success. - virtual bool BuildProcPath(char* path, pid_t pid, const char* node) const; - - // Implements LinuxDumper::CopyFromProcess(). - // Copies content of |length| bytes from a given process |child|, - // starting from |src|, into |dest|. This method uses ptrace to extract - // the content from the target process. Always returns true. - virtual bool CopyFromProcess(void* dest, pid_t child, const void* src, - size_t length); - - // Implements LinuxDumper::GetThreadInfoByIndex(). - // Reads information about the |index|-th thread of |threads_|. - // Returns true on success. One must have called |ThreadsSuspend| first. - virtual bool GetThreadInfoByIndex(size_t index, ThreadInfo* info); - - // Implements LinuxDumper::IsPostMortem(). - // Always returns false to indicate this dumper performs a dump of - // a crashed process via ptrace. - virtual bool IsPostMortem() const; - - // Implements LinuxDumper::ThreadsSuspend(). - // Suspends all threads in the given process. Returns true on success. - virtual bool ThreadsSuspend(); - - // Implements LinuxDumper::ThreadsResume(). - // Resumes all threads in the given process. Returns true on success. - virtual bool ThreadsResume(); - - protected: - // Implements LinuxDumper::EnumerateThreads(). - // Enumerates all threads of the given process into |threads_|. - virtual bool EnumerateThreads(); - - private: - // Set to true if all threads of the crashed process are suspended. - bool threads_suspended_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_HANDLER_LINUX_PTRACE_DUMPER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc deleted file mode 100644 index 3103761f..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.cc +++ /dev/null @@ -1,1367 +0,0 @@ -// Copyright (c) 2010, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// This code writes out minidump files: -// http://msdn.microsoft.com/en-us/library/ms680378(VS.85,loband).aspx -// -// Minidumps are a Microsoft format which Breakpad uses for recording crash -// dumps. This code has to run in a compromised environment (the address space -// may have received SIGSEGV), thus the following rules apply: -// * You may not enter the dynamic linker. This means that we cannot call -// any symbols in a shared library (inc libc). Because of this we replace -// libc functions in linux_libc_support.h. -// * You may not call syscalls via the libc wrappers. This rule is a subset -// of the first rule but it bears repeating. We have direct wrappers -// around the system calls in linux_syscall_support.h. -// * You may not malloc. There's an alternative allocator in memory.h and -// a canonical instance in the LinuxDumper object. We use the placement -// new form to allocate objects and we don't delete them. - -#include "client/linux/handler/minidump_descriptor.h" -#include "client/linux/minidump_writer/minidump_writer.h" -#include "client/minidump_file_writer-inl.h" - -#include -#include -#include -#include -#include -#if defined(__ANDROID__) -#include -#endif -#include -#include -#include -#include -#include -#include - -#include - -#include "client/linux/dump_writer_common/thread_info.h" -#include "client/linux/dump_writer_common/ucontext_reader.h" -#include "client/linux/handler/exception_handler.h" -#include "client/linux/minidump_writer/cpu_set.h" -#include "client/linux/minidump_writer/line_reader.h" -#include "client/linux/minidump_writer/linux_dumper.h" -#include "client/linux/minidump_writer/linux_ptrace_dumper.h" -#include "client/linux/minidump_writer/proc_cpuinfo_reader.h" -#include "client/minidump_file_writer.h" -#include "common/linux/linux_libc_support.h" -#include "common/minidump_type_helper.h" -#include "google_breakpad/common/minidump_format.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace { - -using google_breakpad::AppMemoryList; -using google_breakpad::ExceptionHandler; -using google_breakpad::CpuSet; -using google_breakpad::LineReader; -using google_breakpad::LinuxDumper; -using google_breakpad::LinuxPtraceDumper; -using google_breakpad::MDTypeHelper; -using google_breakpad::MappingEntry; -using google_breakpad::MappingInfo; -using google_breakpad::MappingList; -using google_breakpad::MinidumpFileWriter; -using google_breakpad::PageAllocator; -using google_breakpad::ProcCpuInfoReader; -using google_breakpad::RawContextCPU; -using google_breakpad::ThreadInfo; -using google_breakpad::TypedMDRVA; -using google_breakpad::UContextReader; -using google_breakpad::UntypedMDRVA; -using google_breakpad::wasteful_vector; - -typedef MDTypeHelper::MDRawDebug MDRawDebug; -typedef MDTypeHelper::MDRawLinkMap MDRawLinkMap; - -class MinidumpWriter { - public: - // The following kLimit* constants are for when minidump_size_limit_ is set - // and the minidump size might exceed it. - // - // Estimate for how big each thread's stack will be (in bytes). - static const unsigned kLimitAverageThreadStackLength = 8 * 1024; - // Number of threads whose stack size we don't want to limit. These base - // threads will simply be the first N threads returned by the dumper (although - // the crashing thread will never be limited). Threads beyond this count are - // the extra threads. - static const unsigned kLimitBaseThreadCount = 20; - // Maximum stack size to dump for any extra thread (in bytes). - static const unsigned kLimitMaxExtraThreadStackLen = 2 * 1024; - // Make sure this number of additional bytes can fit in the minidump - // (exclude the stack data). - static const unsigned kLimitMinidumpFudgeFactor = 64 * 1024; - - MinidumpWriter(const char* minidump_path, - int minidump_fd, - const ExceptionHandler::CrashContext* context, - const MappingList& mappings, - const AppMemoryList& appmem, - LinuxDumper* dumper) - : fd_(minidump_fd), - path_(minidump_path), - ucontext_(context ? &context->context : NULL), -#if !defined(__ARM_EABI__) && !defined(__mips__) - float_state_(context ? &context->float_state : NULL), -#endif - dumper_(dumper), - minidump_size_limit_(-1), - memory_blocks_(dumper_->allocator()), - mapping_list_(mappings), - app_memory_list_(appmem) { - // Assert there should be either a valid fd or a valid path, not both. - assert(fd_ != -1 || minidump_path); - assert(fd_ == -1 || !minidump_path); - } - - bool Init() { - if (!dumper_->Init()) - return false; - - if (fd_ != -1) - minidump_writer_.SetFile(fd_); - else if (!minidump_writer_.Open(path_)) - return false; - - return dumper_->ThreadsSuspend() && dumper_->LateInit(); - } - - ~MinidumpWriter() { - // Don't close the file descriptor when it's been provided explicitly. - // Callers might still need to use it. - if (fd_ == -1) - minidump_writer_.Close(); - dumper_->ThreadsResume(); - } - - bool Dump() { - // A minidump file contains a number of tagged streams. This is the number - // of stream which we write. - unsigned kNumWriters = 13; - - TypedMDRVA dir(&minidump_writer_); - { - // Ensure the header gets flushed, as that happens in the destructor. - // If a crash occurs somewhere below, at least the header will be - // intact. - TypedMDRVA header(&minidump_writer_); - if (!header.Allocate()) - return false; - - if (!dir.AllocateArray(kNumWriters)) - return false; - - my_memset(header.get(), 0, sizeof(MDRawHeader)); - - header.get()->signature = MD_HEADER_SIGNATURE; - header.get()->version = MD_HEADER_VERSION; - header.get()->time_date_stamp = time(NULL); - header.get()->stream_count = kNumWriters; - header.get()->stream_directory_rva = dir.position(); - } - - unsigned dir_index = 0; - MDRawDirectory dirent; - - if (!WriteThreadListStream(&dirent)) - return false; - dir.CopyIndex(dir_index++, &dirent); - - if (!WriteMappings(&dirent)) - return false; - dir.CopyIndex(dir_index++, &dirent); - - if (!WriteAppMemory()) - return false; - - if (!WriteMemoryListStream(&dirent)) - return false; - dir.CopyIndex(dir_index++, &dirent); - - if (!WriteExceptionStream(&dirent)) - return false; - dir.CopyIndex(dir_index++, &dirent); - - if (!WriteSystemInfoStream(&dirent)) - return false; - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_CPU_INFO; - if (!WriteFile(&dirent.location, "/proc/cpuinfo")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_PROC_STATUS; - if (!WriteProcFile(&dirent.location, GetCrashThread(), "status")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_LSB_RELEASE; - if (!WriteFile(&dirent.location, "/etc/lsb-release")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_CMD_LINE; - if (!WriteProcFile(&dirent.location, GetCrashThread(), "cmdline")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_ENVIRON; - if (!WriteProcFile(&dirent.location, GetCrashThread(), "environ")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_AUXV; - if (!WriteProcFile(&dirent.location, GetCrashThread(), "auxv")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_MAPS; - if (!WriteProcFile(&dirent.location, GetCrashThread(), "maps")) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - dirent.stream_type = MD_LINUX_DSO_DEBUG; - if (!WriteDSODebugStream(&dirent)) - NullifyDirectoryEntry(&dirent); - dir.CopyIndex(dir_index++, &dirent); - - // If you add more directory entries, don't forget to update kNumWriters, - // above. - - dumper_->ThreadsResume(); - return true; - } - - bool FillThreadStack(MDRawThread* thread, uintptr_t stack_pointer, - int max_stack_len, uint8_t** stack_copy) { - *stack_copy = NULL; - const void* stack; - size_t stack_len; - if (dumper_->GetStackInfo(&stack, &stack_len, stack_pointer)) { - UntypedMDRVA memory(&minidump_writer_); - if (max_stack_len >= 0 && - stack_len > static_cast(max_stack_len)) { - stack_len = max_stack_len; - } - if (!memory.Allocate(stack_len)) - return false; - *stack_copy = reinterpret_cast(Alloc(stack_len)); - dumper_->CopyFromProcess(*stack_copy, thread->thread_id, stack, - stack_len); - memory.Copy(*stack_copy, stack_len); - thread->stack.start_of_memory_range = - reinterpret_cast(stack); - thread->stack.memory = memory.location(); - memory_blocks_.push_back(thread->stack); - } else { - thread->stack.start_of_memory_range = stack_pointer; - thread->stack.memory.data_size = 0; - thread->stack.memory.rva = minidump_writer_.position(); - } - return true; - } - - // Write information about the threads. - bool WriteThreadListStream(MDRawDirectory* dirent) { - const unsigned num_threads = dumper_->threads().size(); - - TypedMDRVA list(&minidump_writer_); - if (!list.AllocateObjectAndArray(num_threads, sizeof(MDRawThread))) - return false; - - dirent->stream_type = MD_THREAD_LIST_STREAM; - dirent->location = list.location(); - - *list.get() = num_threads; - - // If there's a minidump size limit, check if it might be exceeded. Since - // most of the space is filled with stack data, just check against that. - // If this expects to exceed the limit, set extra_thread_stack_len such - // that any thread beyond the first kLimitBaseThreadCount threads will - // have only kLimitMaxExtraThreadStackLen bytes dumped. - int extra_thread_stack_len = -1; // default to no maximum - if (minidump_size_limit_ >= 0) { - const unsigned estimated_total_stack_size = num_threads * - kLimitAverageThreadStackLength; - const off_t estimated_minidump_size = minidump_writer_.position() + - estimated_total_stack_size + kLimitMinidumpFudgeFactor; - if (estimated_minidump_size > minidump_size_limit_) - extra_thread_stack_len = kLimitMaxExtraThreadStackLen; - } - - for (unsigned i = 0; i < num_threads; ++i) { - MDRawThread thread; - my_memset(&thread, 0, sizeof(thread)); - thread.thread_id = dumper_->threads()[i]; - - // We have a different source of information for the crashing thread. If - // we used the actual state of the thread we would find it running in the - // signal handler with the alternative stack, which would be deeply - // unhelpful. - if (static_cast(thread.thread_id) == GetCrashThread() && - ucontext_ && - !dumper_->IsPostMortem()) { - uint8_t* stack_copy; - const uintptr_t stack_ptr = UContextReader::GetStackPointer(ucontext_); - if (!FillThreadStack(&thread, stack_ptr, -1, &stack_copy)) - return false; - - // Copy 256 bytes around crashing instruction pointer to minidump. - const size_t kIPMemorySize = 256; - uint64_t ip = UContextReader::GetInstructionPointer(ucontext_); - // Bound it to the upper and lower bounds of the memory map - // it's contained within. If it's not in mapped memory, - // don't bother trying to write it. - bool ip_is_mapped = false; - MDMemoryDescriptor ip_memory_d; - for (unsigned j = 0; j < dumper_->mappings().size(); ++j) { - const MappingInfo& mapping = *dumper_->mappings()[j]; - if (ip >= mapping.start_addr && - ip < mapping.start_addr + mapping.size) { - ip_is_mapped = true; - // Try to get 128 bytes before and after the IP, but - // settle for whatever's available. - ip_memory_d.start_of_memory_range = - std::max(mapping.start_addr, - uintptr_t(ip - (kIPMemorySize / 2))); - uintptr_t end_of_range = - std::min(uintptr_t(ip + (kIPMemorySize / 2)), - uintptr_t(mapping.start_addr + mapping.size)); - ip_memory_d.memory.data_size = - end_of_range - ip_memory_d.start_of_memory_range; - break; - } - } - - if (ip_is_mapped) { - UntypedMDRVA ip_memory(&minidump_writer_); - if (!ip_memory.Allocate(ip_memory_d.memory.data_size)) - return false; - uint8_t* memory_copy = - reinterpret_cast(Alloc(ip_memory_d.memory.data_size)); - dumper_->CopyFromProcess( - memory_copy, - thread.thread_id, - reinterpret_cast(ip_memory_d.start_of_memory_range), - ip_memory_d.memory.data_size); - ip_memory.Copy(memory_copy, ip_memory_d.memory.data_size); - ip_memory_d.memory = ip_memory.location(); - memory_blocks_.push_back(ip_memory_d); - } - - TypedMDRVA cpu(&minidump_writer_); - if (!cpu.Allocate()) - return false; - my_memset(cpu.get(), 0, sizeof(RawContextCPU)); -#if !defined(__ARM_EABI__) && !defined(__mips__) - UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_); -#else - UContextReader::FillCPUContext(cpu.get(), ucontext_); -#endif - thread.thread_context = cpu.location(); - crashing_thread_context_ = cpu.location(); - } else { - ThreadInfo info; - if (!dumper_->GetThreadInfoByIndex(i, &info)) - return false; - - uint8_t* stack_copy; - int max_stack_len = -1; // default to no maximum for this thread - if (minidump_size_limit_ >= 0 && i >= kLimitBaseThreadCount) - max_stack_len = extra_thread_stack_len; - if (!FillThreadStack(&thread, info.stack_pointer, max_stack_len, - &stack_copy)) - return false; - - TypedMDRVA cpu(&minidump_writer_); - if (!cpu.Allocate()) - return false; - my_memset(cpu.get(), 0, sizeof(RawContextCPU)); - info.FillCPUContext(cpu.get()); - thread.thread_context = cpu.location(); - if (dumper_->threads()[i] == GetCrashThread()) { - crashing_thread_context_ = cpu.location(); - if (!dumper_->IsPostMortem()) { - // This is the crashing thread of a live process, but - // no context was provided, so set the crash address - // while the instruction pointer is already here. - dumper_->set_crash_address(info.GetInstructionPointer()); - } - } - } - - list.CopyIndexAfterObject(i, &thread, sizeof(thread)); - } - - return true; - } - - // Write application-provided memory regions. - bool WriteAppMemory() { - for (AppMemoryList::const_iterator iter = app_memory_list_.begin(); - iter != app_memory_list_.end(); - ++iter) { - uint8_t* data_copy = - reinterpret_cast(dumper_->allocator()->Alloc(iter->length)); - dumper_->CopyFromProcess(data_copy, GetCrashThread(), iter->ptr, - iter->length); - - UntypedMDRVA memory(&minidump_writer_); - if (!memory.Allocate(iter->length)) { - return false; - } - memory.Copy(data_copy, iter->length); - MDMemoryDescriptor desc; - desc.start_of_memory_range = reinterpret_cast(iter->ptr); - desc.memory = memory.location(); - memory_blocks_.push_back(desc); - } - - return true; - } - - static bool ShouldIncludeMapping(const MappingInfo& mapping) { - if (mapping.name[0] == 0 || // only want modules with filenames. - // Only want to include one mapping per shared lib. - // Avoid filtering executable mappings. - (mapping.offset != 0 && !mapping.exec) || - mapping.size < 4096) { // too small to get a signature for. - return false; - } - - return true; - } - - // If there is caller-provided information about this mapping - // in the mapping_list_ list, return true. Otherwise, return false. - bool HaveMappingInfo(const MappingInfo& mapping) { - for (MappingList::const_iterator iter = mapping_list_.begin(); - iter != mapping_list_.end(); - ++iter) { - // Ignore any mappings that are wholly contained within - // mappings in the mapping_info_ list. - if (mapping.start_addr >= iter->first.start_addr && - (mapping.start_addr + mapping.size) <= - (iter->first.start_addr + iter->first.size)) { - return true; - } - } - return false; - } - - // Write information about the mappings in effect. Because we are using the - // minidump format, the information about the mappings is pretty limited. - // Because of this, we also include the full, unparsed, /proc/$x/maps file in - // another stream in the file. - bool WriteMappings(MDRawDirectory* dirent) { - const unsigned num_mappings = dumper_->mappings().size(); - unsigned num_output_mappings = mapping_list_.size(); - - for (unsigned i = 0; i < dumper_->mappings().size(); ++i) { - const MappingInfo& mapping = *dumper_->mappings()[i]; - if (ShouldIncludeMapping(mapping) && !HaveMappingInfo(mapping)) - num_output_mappings++; - } - - TypedMDRVA list(&minidump_writer_); - if (num_output_mappings) { - if (!list.AllocateObjectAndArray(num_output_mappings, MD_MODULE_SIZE)) - return false; - } else { - // Still create the module list stream, although it will have zero - // modules. - if (!list.Allocate()) - return false; - } - - dirent->stream_type = MD_MODULE_LIST_STREAM; - dirent->location = list.location(); - *list.get() = num_output_mappings; - - // First write all the mappings from the dumper - unsigned int j = 0; - for (unsigned i = 0; i < num_mappings; ++i) { - const MappingInfo& mapping = *dumper_->mappings()[i]; - if (!ShouldIncludeMapping(mapping) || HaveMappingInfo(mapping)) - continue; - - MDRawModule mod; - if (!FillRawModule(mapping, true, i, &mod, NULL)) - return false; - list.CopyIndexAfterObject(j++, &mod, MD_MODULE_SIZE); - } - // Next write all the mappings provided by the caller - for (MappingList::const_iterator iter = mapping_list_.begin(); - iter != mapping_list_.end(); - ++iter) { - MDRawModule mod; - if (!FillRawModule(iter->first, false, 0, &mod, iter->second)) - return false; - list.CopyIndexAfterObject(j++, &mod, MD_MODULE_SIZE); - } - - return true; - } - - // Fill the MDRawModule |mod| with information about the provided - // |mapping|. If |identifier| is non-NULL, use it instead of calculating - // a file ID from the mapping. - bool FillRawModule(const MappingInfo& mapping, - bool member, - unsigned int mapping_id, - MDRawModule* mod, - const uint8_t* identifier) { - my_memset(mod, 0, MD_MODULE_SIZE); - - mod->base_of_image = mapping.start_addr; - mod->size_of_image = mapping.size; - - uint8_t cv_buf[MDCVInfoPDB70_minsize + NAME_MAX]; - uint8_t* cv_ptr = cv_buf; - - const uint32_t cv_signature = MD_CVINFOPDB70_SIGNATURE; - my_memcpy(cv_ptr, &cv_signature, sizeof(cv_signature)); - cv_ptr += sizeof(cv_signature); - uint8_t* signature = cv_ptr; - cv_ptr += sizeof(MDGUID); - if (identifier) { - // GUID was provided by caller. - my_memcpy(signature, identifier, sizeof(MDGUID)); - } else { - // Note: ElfFileIdentifierForMapping() can manipulate the |mapping.name|. - dumper_->ElfFileIdentifierForMapping(mapping, member, - mapping_id, signature); - } - my_memset(cv_ptr, 0, sizeof(uint32_t)); // Set age to 0 on Linux. - cv_ptr += sizeof(uint32_t); - - char file_name[NAME_MAX]; - char file_path[NAME_MAX]; - dumper_->GetMappingEffectiveNameAndPath( - mapping, file_path, sizeof(file_path), file_name, sizeof(file_name)); - - const size_t file_name_len = my_strlen(file_name); - UntypedMDRVA cv(&minidump_writer_); - if (!cv.Allocate(MDCVInfoPDB70_minsize + file_name_len + 1)) - return false; - - // Write pdb_file_name - my_memcpy(cv_ptr, file_name, file_name_len + 1); - cv.Copy(cv_buf, MDCVInfoPDB70_minsize + file_name_len + 1); - - mod->cv_record = cv.location(); - - MDLocationDescriptor ld; - if (!minidump_writer_.WriteString(file_path, my_strlen(file_path), &ld)) - return false; - mod->module_name_rva = ld.rva; - return true; - } - - bool WriteMemoryListStream(MDRawDirectory* dirent) { - TypedMDRVA list(&minidump_writer_); - if (memory_blocks_.size()) { - if (!list.AllocateObjectAndArray(memory_blocks_.size(), - sizeof(MDMemoryDescriptor))) - return false; - } else { - // Still create the memory list stream, although it will have zero - // memory blocks. - if (!list.Allocate()) - return false; - } - - dirent->stream_type = MD_MEMORY_LIST_STREAM; - dirent->location = list.location(); - - *list.get() = memory_blocks_.size(); - - for (size_t i = 0; i < memory_blocks_.size(); ++i) { - list.CopyIndexAfterObject(i, &memory_blocks_[i], - sizeof(MDMemoryDescriptor)); - } - return true; - } - - bool WriteExceptionStream(MDRawDirectory* dirent) { - TypedMDRVA exc(&minidump_writer_); - if (!exc.Allocate()) - return false; - my_memset(exc.get(), 0, sizeof(MDRawExceptionStream)); - - dirent->stream_type = MD_EXCEPTION_STREAM; - dirent->location = exc.location(); - - exc.get()->thread_id = GetCrashThread(); - exc.get()->exception_record.exception_code = dumper_->crash_signal(); - exc.get()->exception_record.exception_address = dumper_->crash_address(); - exc.get()->thread_context = crashing_thread_context_; - - return true; - } - - bool WriteSystemInfoStream(MDRawDirectory* dirent) { - TypedMDRVA si(&minidump_writer_); - if (!si.Allocate()) - return false; - my_memset(si.get(), 0, sizeof(MDRawSystemInfo)); - - dirent->stream_type = MD_SYSTEM_INFO_STREAM; - dirent->location = si.location(); - - WriteCPUInformation(si.get()); - WriteOSInformation(si.get()); - - return true; - } - - bool WriteDSODebugStream(MDRawDirectory* dirent) { - ElfW(Phdr)* phdr = reinterpret_cast(dumper_->auxv()[AT_PHDR]); - char* base; - int phnum = dumper_->auxv()[AT_PHNUM]; - if (!phnum || !phdr) - return false; - - // Assume the program base is at the beginning of the same page as the PHDR - base = reinterpret_cast(reinterpret_cast(phdr) & ~0xfff); - - // Search for the program PT_DYNAMIC segment - ElfW(Addr) dyn_addr = 0; - for (; phnum >= 0; phnum--, phdr++) { - ElfW(Phdr) ph; - if (!dumper_->CopyFromProcess(&ph, GetCrashThread(), phdr, sizeof(ph))) - return false; - - // Adjust base address with the virtual address of the PT_LOAD segment - // corresponding to offset 0 - if (ph.p_type == PT_LOAD && ph.p_offset == 0) { - base -= ph.p_vaddr; - } - if (ph.p_type == PT_DYNAMIC) { - dyn_addr = ph.p_vaddr; - } - } - if (!dyn_addr) - return false; - - ElfW(Dyn) *dynamic = reinterpret_cast(dyn_addr + base); - - // The dynamic linker makes information available that helps gdb find all - // DSOs loaded into the program. If this information is indeed available, - // dump it to a MD_LINUX_DSO_DEBUG stream. - struct r_debug* r_debug = NULL; - uint32_t dynamic_length = 0; - - for (int i = 0; ; ++i) { - ElfW(Dyn) dyn; - dynamic_length += sizeof(dyn); - if (!dumper_->CopyFromProcess(&dyn, GetCrashThread(), dynamic + i, - sizeof(dyn))) { - return false; - } - -#ifdef __mips__ - const int32_t debug_tag = DT_MIPS_RLD_MAP; -#else - const int32_t debug_tag = DT_DEBUG; -#endif - if (dyn.d_tag == debug_tag) { - r_debug = reinterpret_cast(dyn.d_un.d_ptr); - continue; - } else if (dyn.d_tag == DT_NULL) { - break; - } - } - - // The "r_map" field of that r_debug struct contains a linked list of all - // loaded DSOs. - // Our list of DSOs potentially is different from the ones in the crashing - // process. So, we have to be careful to never dereference pointers - // directly. Instead, we use CopyFromProcess() everywhere. - // See for a more detailed discussion of the how the dynamic - // loader communicates with debuggers. - - // Count the number of loaded DSOs - int dso_count = 0; - struct r_debug debug_entry; - if (!dumper_->CopyFromProcess(&debug_entry, GetCrashThread(), r_debug, - sizeof(debug_entry))) { - return false; - } - for (struct link_map* ptr = debug_entry.r_map; ptr; ) { - struct link_map map; - if (!dumper_->CopyFromProcess(&map, GetCrashThread(), ptr, sizeof(map))) - return false; - - ptr = map.l_next; - dso_count++; - } - - MDRVA linkmap_rva = minidump_writer_.kInvalidMDRVA; - if (dso_count > 0) { - // If we have at least one DSO, create an array of MDRawLinkMap - // entries in the minidump file. - TypedMDRVA linkmap(&minidump_writer_); - if (!linkmap.AllocateArray(dso_count)) - return false; - linkmap_rva = linkmap.location().rva; - int idx = 0; - - // Iterate over DSOs and write their information to mini dump - for (struct link_map* ptr = debug_entry.r_map; ptr; ) { - struct link_map map; - if (!dumper_->CopyFromProcess(&map, GetCrashThread(), ptr, sizeof(map))) - return false; - - ptr = map.l_next; - char filename[257] = { 0 }; - if (map.l_name) { - dumper_->CopyFromProcess(filename, GetCrashThread(), map.l_name, - sizeof(filename) - 1); - } - MDLocationDescriptor location; - if (!minidump_writer_.WriteString(filename, 0, &location)) - return false; - MDRawLinkMap entry; - entry.name = location.rva; - entry.addr = map.l_addr; - entry.ld = reinterpret_cast(map.l_ld); - linkmap.CopyIndex(idx++, &entry); - } - } - - // Write MD_LINUX_DSO_DEBUG record - TypedMDRVA debug(&minidump_writer_); - if (!debug.AllocateObjectAndArray(1, dynamic_length)) - return false; - my_memset(debug.get(), 0, sizeof(MDRawDebug)); - dirent->stream_type = MD_LINUX_DSO_DEBUG; - dirent->location = debug.location(); - - debug.get()->version = debug_entry.r_version; - debug.get()->map = linkmap_rva; - debug.get()->dso_count = dso_count; - debug.get()->brk = debug_entry.r_brk; - debug.get()->ldbase = debug_entry.r_ldbase; - debug.get()->dynamic = reinterpret_cast(dynamic); - - wasteful_vector dso_debug_data(dumper_->allocator(), dynamic_length); - // The passed-in size to the constructor (above) is only a hint. - // Must call .resize() to do actual initialization of the elements. - dso_debug_data.resize(dynamic_length); - dumper_->CopyFromProcess(&dso_debug_data[0], GetCrashThread(), dynamic, - dynamic_length); - debug.CopyIndexAfterObject(0, &dso_debug_data[0], dynamic_length); - - return true; - } - - void set_minidump_size_limit(off_t limit) { minidump_size_limit_ = limit; } - - private: - void* Alloc(unsigned bytes) { - return dumper_->allocator()->Alloc(bytes); - } - - pid_t GetCrashThread() const { - return dumper_->crash_thread(); - } - - void NullifyDirectoryEntry(MDRawDirectory* dirent) { - dirent->stream_type = 0; - dirent->location.data_size = 0; - dirent->location.rva = 0; - } - -#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) - bool WriteCPUInformation(MDRawSystemInfo* sys_info) { - char vendor_id[sizeof(sys_info->cpu.x86_cpu_info.vendor_id) + 1] = {0}; - static const char vendor_id_name[] = "vendor_id"; - - struct CpuInfoEntry { - const char* info_name; - int value; - bool found; - } cpu_info_table[] = { - { "processor", -1, false }, -#if defined(__i386__) || defined(__x86_64__) - { "model", 0, false }, - { "stepping", 0, false }, - { "cpu family", 0, false }, -#endif - }; - - // processor_architecture should always be set, do this first - sys_info->processor_architecture = -#if defined(__mips__) -# if _MIPS_SIM == _ABIO32 - MD_CPU_ARCHITECTURE_MIPS; -# elif _MIPS_SIM == _ABI64 - MD_CPU_ARCHITECTURE_MIPS64; -# else -# error "This mips ABI is currently not supported (n32)" -#endif -#elif defined(__i386__) - MD_CPU_ARCHITECTURE_X86; -#else - MD_CPU_ARCHITECTURE_AMD64; -#endif - - const int fd = sys_open("/proc/cpuinfo", O_RDONLY, 0); - if (fd < 0) - return false; - - { - PageAllocator allocator; - ProcCpuInfoReader* const reader = new(allocator) ProcCpuInfoReader(fd); - const char* field; - while (reader->GetNextField(&field)) { - bool is_first_entry = true; - for (CpuInfoEntry& entry : cpu_info_table) { - if (!is_first_entry && entry.found) { - // except for the 'processor' field, ignore repeated values. - continue; - } - is_first_entry = false; - if (!my_strcmp(field, entry.info_name)) { - size_t value_len; - const char* value = reader->GetValueAndLen(&value_len); - if (value_len == 0) - continue; - - uintptr_t val; - if (my_read_decimal_ptr(&val, value) == value) - continue; - - entry.value = static_cast(val); - entry.found = true; - } - } - - // special case for vendor_id - if (!my_strcmp(field, vendor_id_name)) { - size_t value_len; - const char* value = reader->GetValueAndLen(&value_len); - if (value_len > 0) - my_strlcpy(vendor_id, value, sizeof(vendor_id)); - } - } - sys_close(fd); - } - - // make sure we got everything we wanted - for (const CpuInfoEntry& entry : cpu_info_table) { - if (!entry.found) { - return false; - } - } - // cpu_info_table[0] holds the last cpu id listed in /proc/cpuinfo, - // assuming this is the highest id, change it to the number of CPUs - // by adding one. - cpu_info_table[0].value++; - - sys_info->number_of_processors = cpu_info_table[0].value; -#if defined(__i386__) || defined(__x86_64__) - sys_info->processor_level = cpu_info_table[3].value; - sys_info->processor_revision = cpu_info_table[1].value << 8 | - cpu_info_table[2].value; -#endif - - if (vendor_id[0] != '\0') { - my_memcpy(sys_info->cpu.x86_cpu_info.vendor_id, vendor_id, - sizeof(sys_info->cpu.x86_cpu_info.vendor_id)); - } - return true; - } -#elif defined(__arm__) || defined(__aarch64__) - bool WriteCPUInformation(MDRawSystemInfo* sys_info) { - // The CPUID value is broken up in several entries in /proc/cpuinfo. - // This table is used to rebuild it from the entries. - const struct CpuIdEntry { - const char* field; - char format; - char bit_lshift; - char bit_length; - } cpu_id_entries[] = { - { "CPU implementer", 'x', 24, 8 }, - { "CPU variant", 'x', 20, 4 }, - { "CPU part", 'x', 4, 12 }, - { "CPU revision", 'd', 0, 4 }, - }; - - // The ELF hwcaps are listed in the "Features" entry as textual tags. - // This table is used to rebuild them. - const struct CpuFeaturesEntry { - const char* tag; - uint32_t hwcaps; - } cpu_features_entries[] = { -#if defined(__arm__) - { "swp", MD_CPU_ARM_ELF_HWCAP_SWP }, - { "half", MD_CPU_ARM_ELF_HWCAP_HALF }, - { "thumb", MD_CPU_ARM_ELF_HWCAP_THUMB }, - { "26bit", MD_CPU_ARM_ELF_HWCAP_26BIT }, - { "fastmult", MD_CPU_ARM_ELF_HWCAP_FAST_MULT }, - { "fpa", MD_CPU_ARM_ELF_HWCAP_FPA }, - { "vfp", MD_CPU_ARM_ELF_HWCAP_VFP }, - { "edsp", MD_CPU_ARM_ELF_HWCAP_EDSP }, - { "java", MD_CPU_ARM_ELF_HWCAP_JAVA }, - { "iwmmxt", MD_CPU_ARM_ELF_HWCAP_IWMMXT }, - { "crunch", MD_CPU_ARM_ELF_HWCAP_CRUNCH }, - { "thumbee", MD_CPU_ARM_ELF_HWCAP_THUMBEE }, - { "neon", MD_CPU_ARM_ELF_HWCAP_NEON }, - { "vfpv3", MD_CPU_ARM_ELF_HWCAP_VFPv3 }, - { "vfpv3d16", MD_CPU_ARM_ELF_HWCAP_VFPv3D16 }, - { "tls", MD_CPU_ARM_ELF_HWCAP_TLS }, - { "vfpv4", MD_CPU_ARM_ELF_HWCAP_VFPv4 }, - { "idiva", MD_CPU_ARM_ELF_HWCAP_IDIVA }, - { "idivt", MD_CPU_ARM_ELF_HWCAP_IDIVT }, - { "idiv", MD_CPU_ARM_ELF_HWCAP_IDIVA | MD_CPU_ARM_ELF_HWCAP_IDIVT }, -#elif defined(__aarch64__) - // No hwcaps on aarch64. -#endif - }; - - // processor_architecture should always be set, do this first - sys_info->processor_architecture = -#if defined(__aarch64__) - MD_CPU_ARCHITECTURE_ARM64; -#else - MD_CPU_ARCHITECTURE_ARM; -#endif - - // /proc/cpuinfo is not readable under various sandboxed environments - // (e.g. Android services with the android:isolatedProcess attribute) - // prepare for this by setting default values now, which will be - // returned when this happens. - // - // Note: Bogus values are used to distinguish between failures (to - // read /sys and /proc files) and really badly configured kernels. - sys_info->number_of_processors = 0; - sys_info->processor_level = 1U; // There is no ARMv1 - sys_info->processor_revision = 42; - sys_info->cpu.arm_cpu_info.cpuid = 0; - sys_info->cpu.arm_cpu_info.elf_hwcaps = 0; - - // Counting the number of CPUs involves parsing two sysfs files, - // because the content of /proc/cpuinfo will only mirror the number - // of 'online' cores, and thus will vary with time. - // See http://www.kernel.org/doc/Documentation/cputopology.txt - { - CpuSet cpus_present; - CpuSet cpus_possible; - - int fd = sys_open("/sys/devices/system/cpu/present", O_RDONLY, 0); - if (fd >= 0) { - cpus_present.ParseSysFile(fd); - sys_close(fd); - - fd = sys_open("/sys/devices/system/cpu/possible", O_RDONLY, 0); - if (fd >= 0) { - cpus_possible.ParseSysFile(fd); - sys_close(fd); - - cpus_present.IntersectWith(cpus_possible); - int cpu_count = cpus_present.GetCount(); - if (cpu_count > 255) - cpu_count = 255; - sys_info->number_of_processors = static_cast(cpu_count); - } - } - } - - // Parse /proc/cpuinfo to reconstruct the CPUID value, as well - // as the ELF hwcaps field. For the latter, it would be easier to - // read /proc/self/auxv but unfortunately, this file is not always - // readable from regular Android applications on later versions - // (>= 4.1) of the Android platform. - const int fd = sys_open("/proc/cpuinfo", O_RDONLY, 0); - if (fd < 0) { - // Do not return false here to allow the minidump generation - // to happen properly. - return true; - } - - { - PageAllocator allocator; - ProcCpuInfoReader* const reader = - new(allocator) ProcCpuInfoReader(fd); - const char* field; - while (reader->GetNextField(&field)) { - for (const CpuIdEntry& entry : cpu_id_entries) { - if (my_strcmp(entry.field, field) != 0) - continue; - uintptr_t result = 0; - const char* value = reader->GetValue(); - const char* p = value; - if (value[0] == '0' && value[1] == 'x') { - p = my_read_hex_ptr(&result, value+2); - } else if (entry.format == 'x') { - p = my_read_hex_ptr(&result, value); - } else { - p = my_read_decimal_ptr(&result, value); - } - if (p == value) - continue; - - result &= (1U << entry.bit_length)-1; - result <<= entry.bit_lshift; - sys_info->cpu.arm_cpu_info.cpuid |= - static_cast(result); - } -#if defined(__arm__) - // Get the architecture version from the "Processor" field. - // Note that it is also available in the "CPU architecture" field, - // however, some existing kernels are misconfigured and will report - // invalid values here (e.g. 6, while the CPU is ARMv7-A based). - // The "Processor" field doesn't have this issue. - if (!my_strcmp(field, "Processor")) { - size_t value_len; - const char* value = reader->GetValueAndLen(&value_len); - // Expected format: (v) - // Where is some text like "ARMv7 Processor rev 2" - // and is a decimal corresponding to the ARM - // architecture number. is either 'l' or 'b' - // and corresponds to the endianess, it is ignored here. - while (value_len > 0 && my_isspace(value[value_len-1])) - value_len--; - - size_t nn = value_len; - while (nn > 0 && value[nn-1] != '(') - nn--; - if (nn > 0 && value[nn] == 'v') { - uintptr_t arch_level = 5; - my_read_decimal_ptr(&arch_level, value + nn + 1); - sys_info->processor_level = static_cast(arch_level); - } - } -#elif defined(__aarch64__) - // The aarch64 architecture does not provide the architecture level - // in the Processor field, so we instead check the "CPU architecture" - // field. - if (!my_strcmp(field, "CPU architecture")) { - uintptr_t arch_level = 0; - const char* value = reader->GetValue(); - const char* p = value; - p = my_read_decimal_ptr(&arch_level, value); - if (p == value) - continue; - sys_info->processor_level = static_cast(arch_level); - } -#endif - // Rebuild the ELF hwcaps from the 'Features' field. - if (!my_strcmp(field, "Features")) { - size_t value_len; - const char* value = reader->GetValueAndLen(&value_len); - - // Parse each space-separated tag. - while (value_len > 0) { - const char* tag = value; - size_t tag_len = value_len; - const char* p = my_strchr(tag, ' '); - if (p) { - tag_len = static_cast(p - tag); - value += tag_len + 1; - value_len -= tag_len + 1; - } else { - tag_len = strlen(tag); - value_len = 0; - } - for (const CpuFeaturesEntry& entry : cpu_features_entries) { - if (tag_len == strlen(entry.tag) && - !memcmp(tag, entry.tag, tag_len)) { - sys_info->cpu.arm_cpu_info.elf_hwcaps |= entry.hwcaps; - break; - } - } - } - } - } - sys_close(fd); - } - - return true; - } -#else -# error "Unsupported CPU" -#endif - - bool WriteFile(MDLocationDescriptor* result, const char* filename) { - const int fd = sys_open(filename, O_RDONLY, 0); - if (fd < 0) - return false; - - // We can't stat the files because several of the files that we want to - // read are kernel seqfiles, which always have a length of zero. So we have - // to read as much as we can into a buffer. - static const unsigned kBufSize = 1024 - 2*sizeof(void*); - struct Buffers { - Buffers* next; - size_t len; - uint8_t data[kBufSize]; - } *buffers = reinterpret_cast(Alloc(sizeof(Buffers))); - buffers->next = NULL; - buffers->len = 0; - - size_t total = 0; - for (Buffers* bufptr = buffers;;) { - ssize_t r; - do { - r = sys_read(fd, &bufptr->data[bufptr->len], kBufSize - bufptr->len); - } while (r == -1 && errno == EINTR); - - if (r < 1) - break; - - total += r; - bufptr->len += r; - if (bufptr->len == kBufSize) { - bufptr->next = reinterpret_cast(Alloc(sizeof(Buffers))); - bufptr = bufptr->next; - bufptr->next = NULL; - bufptr->len = 0; - } - } - sys_close(fd); - - if (!total) - return false; - - UntypedMDRVA memory(&minidump_writer_); - if (!memory.Allocate(total)) - return false; - for (MDRVA pos = memory.position(); buffers; buffers = buffers->next) { - // Check for special case of a zero-length buffer. This should only - // occur if a file's size happens to be a multiple of the buffer's - // size, in which case the final sys_read() will have resulted in - // zero bytes being read after the final buffer was just allocated. - if (buffers->len == 0) { - // This can only occur with final buffer. - assert(buffers->next == NULL); - continue; - } - memory.Copy(pos, &buffers->data, buffers->len); - pos += buffers->len; - } - *result = memory.location(); - return true; - } - - bool WriteOSInformation(MDRawSystemInfo* sys_info) { -#if defined(__ANDROID__) - sys_info->platform_id = MD_OS_ANDROID; -#else - sys_info->platform_id = MD_OS_LINUX; -#endif - - struct utsname uts; - if (uname(&uts)) - return false; - - static const size_t buf_len = 512; - char buf[buf_len] = {0}; - size_t space_left = buf_len - 1; - const char* info_table[] = { - uts.sysname, - uts.release, - uts.version, - uts.machine, - NULL - }; - bool first_item = true; - for (const char** cur_info = info_table; *cur_info; cur_info++) { - static const char separator[] = " "; - size_t separator_len = sizeof(separator) - 1; - size_t info_len = my_strlen(*cur_info); - if (info_len == 0) - continue; - - if (space_left < info_len + (first_item ? 0 : separator_len)) - break; - - if (!first_item) { - my_strlcat(buf, separator, sizeof(buf)); - space_left -= separator_len; - } - - first_item = false; - my_strlcat(buf, *cur_info, sizeof(buf)); - space_left -= info_len; - } - - MDLocationDescriptor location; - if (!minidump_writer_.WriteString(buf, 0, &location)) - return false; - sys_info->csd_version_rva = location.rva; - - return true; - } - - bool WriteProcFile(MDLocationDescriptor* result, pid_t pid, - const char* filename) { - char buf[NAME_MAX]; - if (!dumper_->BuildProcPath(buf, pid, filename)) - return false; - return WriteFile(result, buf); - } - - // Only one of the 2 member variables below should be set to a valid value. - const int fd_; // File descriptor where the minidum should be written. - const char* path_; // Path to the file where the minidum should be written. - - const struct ucontext* const ucontext_; // also from the signal handler -#if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; // ditto -#endif - LinuxDumper* dumper_; - MinidumpFileWriter minidump_writer_; - off_t minidump_size_limit_; - MDLocationDescriptor crashing_thread_context_; - // Blocks of memory written to the dump. These are all currently - // written while writing the thread list stream, but saved here - // so a memory list stream can be written afterwards. - wasteful_vector memory_blocks_; - // Additional information about some mappings provided by the caller. - const MappingList& mapping_list_; - // Additional memory regions to be included in the dump, - // provided by the caller. - const AppMemoryList& app_memory_list_; -}; - - -bool WriteMinidumpImpl(const char* minidump_path, - int minidump_fd, - off_t minidump_size_limit, - pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appmem) { - LinuxPtraceDumper dumper(crashing_process); - const ExceptionHandler::CrashContext* context = NULL; - if (blob) { - if (blob_size != sizeof(ExceptionHandler::CrashContext)) - return false; - context = reinterpret_cast(blob); - dumper.set_crash_address( - reinterpret_cast(context->siginfo.si_addr)); - dumper.set_crash_signal(context->siginfo.si_signo); - dumper.set_crash_thread(context->tid); - } - MinidumpWriter writer(minidump_path, minidump_fd, context, mappings, - appmem, &dumper); - // Set desired limit for file size of minidump (-1 means no limit). - writer.set_minidump_size_limit(minidump_size_limit); - if (!writer.Init()) - return false; - return writer.Dump(); -} - -} // namespace - -namespace google_breakpad { - -bool WriteMinidump(const char* minidump_path, pid_t crashing_process, - const void* blob, size_t blob_size) { - return WriteMinidumpImpl(minidump_path, -1, -1, - crashing_process, blob, blob_size, - MappingList(), AppMemoryList()); -} - -bool WriteMinidump(int minidump_fd, pid_t crashing_process, - const void* blob, size_t blob_size) { - return WriteMinidumpImpl(NULL, minidump_fd, -1, - crashing_process, blob, blob_size, - MappingList(), AppMemoryList()); -} - -bool WriteMinidump(const char* minidump_path, pid_t process, - pid_t process_blamed_thread) { - LinuxPtraceDumper dumper(process); - // MinidumpWriter will set crash address - dumper.set_crash_signal(MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED); - dumper.set_crash_thread(process_blamed_thread); - MinidumpWriter writer(minidump_path, -1, NULL, MappingList(), - AppMemoryList(), &dumper); - if (!writer.Init()) - return false; - return writer.Dump(); -} - -bool WriteMinidump(const char* minidump_path, pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appmem) { - return WriteMinidumpImpl(minidump_path, -1, -1, crashing_process, - blob, blob_size, - mappings, appmem); -} - -bool WriteMinidump(int minidump_fd, pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appmem) { - return WriteMinidumpImpl(NULL, minidump_fd, -1, crashing_process, - blob, blob_size, - mappings, appmem); -} - -bool WriteMinidump(const char* minidump_path, off_t minidump_size_limit, - pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appmem) { - return WriteMinidumpImpl(minidump_path, -1, minidump_size_limit, - crashing_process, blob, blob_size, - mappings, appmem); -} - -bool WriteMinidump(int minidump_fd, off_t minidump_size_limit, - pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appmem) { - return WriteMinidumpImpl(NULL, minidump_fd, minidump_size_limit, - crashing_process, blob, blob_size, - mappings, appmem); -} - -bool WriteMinidump(const char* filename, - const MappingList& mappings, - const AppMemoryList& appmem, - LinuxDumper* dumper) { - MinidumpWriter writer(filename, -1, NULL, mappings, appmem, dumper); - if (!writer.Init()) - return false; - return writer.Dump(); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.h b/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.h deleted file mode 100644 index d13fb120..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/minidump_writer.h +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2009, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_ - -#include -#include -#include -#include - -#include -#include - -#include "client/linux/minidump_writer/linux_dumper.h" -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -class ExceptionHandler; - -#if defined(__aarch64__) -typedef struct fpsimd_context fpstate_t; -#elif !defined(__ARM_EABI__) && !defined(__mips__) -typedef struct _libc_fpstate fpstate_t; -#endif - -// These entries store a list of memory regions that the client wants included -// in the minidump. -struct AppMemory { - void* ptr; - size_t length; - - bool operator==(const struct AppMemory& other) const { - return ptr == other.ptr; - } - - bool operator==(const void* other) const { - return ptr == other; - } -}; -typedef std::list AppMemoryList; - -// Writes a minidump to the filesystem. These functions do not malloc nor use -// libc functions which may. Thus, it can be used in contexts where the state -// of the heap may be corrupt. -// minidump_path: the path to the file to write to. This is opened O_EXCL and -// fails open fails. -// crashing_process: the pid of the crashing process. This must be trusted. -// blob: a blob of data from the crashing process. See exception_handler.h -// blob_size: the length of |blob|, in bytes -// -// Returns true iff successful. -bool WriteMinidump(const char* minidump_path, pid_t crashing_process, - const void* blob, size_t blob_size); -// Same as above but takes an open file descriptor instead of a path. -bool WriteMinidump(int minidump_fd, pid_t crashing_process, - const void* blob, size_t blob_size); - -// Alternate form of WriteMinidump() that works with processes that -// are not expected to have crashed. If |process_blamed_thread| is -// meaningful, it will be the one from which a crash signature is -// extracted. It is not expected that this function will be called -// from a compromised context, but it is safe to do so. -bool WriteMinidump(const char* minidump_path, pid_t process, - pid_t process_blamed_thread); - -// These overloads also allow passing a list of known mappings and -// a list of additional memory regions to be included in the minidump. -bool WriteMinidump(const char* minidump_path, pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appdata); -bool WriteMinidump(int minidump_fd, pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appdata); - -// These overloads also allow passing a file size limit for the minidump. -bool WriteMinidump(const char* minidump_path, off_t minidump_size_limit, - pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appdata); -bool WriteMinidump(int minidump_fd, off_t minidump_size_limit, - pid_t crashing_process, - const void* blob, size_t blob_size, - const MappingList& mappings, - const AppMemoryList& appdata); - -bool WriteMinidump(const char* filename, - const MappingList& mappings, - const AppMemoryList& appdata, - LinuxDumper* dumper); - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_MINIDUMP_WRITER_H_ diff --git a/sources/google-breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h b/sources/google-breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h deleted file mode 100644 index d9461bf3..00000000 --- a/sources/google-breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader.h +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2013, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_ -#define CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_ - -#include -#include -#include - -#include "client/linux/minidump_writer/line_reader.h" -#include "common/linux/linux_libc_support.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -// A class for reading /proc/cpuinfo without using fopen/fgets or other -// functions which may allocate memory. -class ProcCpuInfoReader { -public: - ProcCpuInfoReader(int fd) - : line_reader_(fd), pop_count_(-1) { - } - - // Return the next field name, or NULL in case of EOF. - // field: (output) Pointer to zero-terminated field name. - // Returns true on success, or false on EOF or error (line too long). - bool GetNextField(const char** field) { - for (;;) { - const char* line; - unsigned line_len; - - // Try to read next line. - if (pop_count_ >= 0) { - line_reader_.PopLine(pop_count_); - pop_count_ = -1; - } - - if (!line_reader_.GetNextLine(&line, &line_len)) - return false; - - pop_count_ = static_cast(line_len); - - const char* line_end = line + line_len; - - // Expected format: + ':' - // Note that: - // - empty lines happen. - // - can contain spaces. - // - some fields have an empty - char* sep = static_cast(my_memchr(line, ':', line_len)); - if (sep == NULL) - continue; - - // Record the value. Skip leading space after the column to get - // its start. - const char* val = sep+1; - while (val < line_end && my_isspace(*val)) - val++; - - value_ = val; - value_len_ = static_cast(line_end - val); - - // Remove trailing spaces before the column to properly 0-terminate - // the field name. - while (sep > line && my_isspace(sep[-1])) - sep--; - - if (sep == line) - continue; - - // zero-terminate field name. - *sep = '\0'; - - *field = line; - return true; - } - } - - // Return the field value. This must be called after a succesful - // call to GetNextField(). - const char* GetValue() { - assert(value_); - return value_; - } - - // Same as GetValue(), but also returns the length in characters of - // the value. - const char* GetValueAndLen(size_t* length) { - assert(value_); - *length = value_len_; - return value_; - } - -private: - LineReader line_reader_; - int pop_count_; - const char* value_; - size_t value_len_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_LINUX_MINIDUMP_WRITER_PROC_CPUINFO_READER_H_ diff --git a/sources/google-breakpad/src/client/minidump_file_writer-inl.h b/sources/google-breakpad/src/client/minidump_file_writer-inl.h deleted file mode 100644 index 0e12e00b..00000000 --- a/sources/google-breakpad/src/client/minidump_file_writer-inl.h +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// minidump_file_writer-inl.h: Minidump file writer implementation. -// -// See minidump_file_writer.h for documentation. - -#ifndef CLIENT_MINIDUMP_FILE_WRITER_INL_H__ -#define CLIENT_MINIDUMP_FILE_WRITER_INL_H__ - -#include - -#include "client/minidump_file_writer.h" -#include "google_breakpad/common/minidump_size.h" - -namespace google_breakpad { - -template -inline bool TypedMDRVA::Allocate() { - allocation_state_ = SINGLE_OBJECT; - return UntypedMDRVA::Allocate(minidump_size::size()); -} - -template -inline bool TypedMDRVA::Allocate(size_t additional) { - allocation_state_ = SINGLE_OBJECT; - return UntypedMDRVA::Allocate(minidump_size::size() + additional); -} - -template -inline bool TypedMDRVA::AllocateArray(size_t count) { - assert(count); - allocation_state_ = ARRAY; - return UntypedMDRVA::Allocate(minidump_size::size() * count); -} - -template -inline bool TypedMDRVA::AllocateObjectAndArray(size_t count, - size_t length) { - assert(count && length); - allocation_state_ = SINGLE_OBJECT_WITH_ARRAY; - return UntypedMDRVA::Allocate(minidump_size::size() + count * length); -} - -template -inline bool TypedMDRVA::CopyIndex(unsigned int index, MDType *item) { - assert(allocation_state_ == ARRAY); - return writer_->Copy( - static_cast(position_ + index * minidump_size::size()), - item, minidump_size::size()); -} - -template -inline bool TypedMDRVA::CopyIndexAfterObject(unsigned int index, - const void *src, - size_t length) { - assert(allocation_state_ == SINGLE_OBJECT_WITH_ARRAY); - return writer_->Copy( - static_cast(position_ + minidump_size::size() - + index * length), - src, length); -} - -template -inline bool TypedMDRVA::Flush() { - return writer_->Copy(position_, &data_, minidump_size::size()); -} - -} // namespace google_breakpad - -#endif // CLIENT_MINIDUMP_FILE_WRITER_INL_H__ diff --git a/sources/google-breakpad/src/client/minidump_file_writer.cc b/sources/google-breakpad/src/client/minidump_file_writer.cc deleted file mode 100644 index a1957f32..00000000 --- a/sources/google-breakpad/src/client/minidump_file_writer.cc +++ /dev/null @@ -1,350 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// minidump_file_writer.cc: Minidump file writer implementation. -// -// See minidump_file_writer.h for documentation. - -#include -#include -#include -#include -#include - -#include "client/minidump_file_writer-inl.h" -#include "common/linux/linux_libc_support.h" -#include "common/string_conversion.h" -#if defined(__linux__) && __linux__ -#include "third_party/lss/linux_syscall_support.h" -#endif - -#if defined(__ANDROID__) -#include - -namespace { - -bool g_need_ftruncate_workaround = false; -bool g_checked_need_ftruncate_workaround = false; - -void CheckNeedsFTruncateWorkAround(int file) { - if (g_checked_need_ftruncate_workaround) { - return; - } - g_checked_need_ftruncate_workaround = true; - - // Attempt an idempotent truncate that chops off nothing and see if we - // run into any sort of errors. - off_t offset = sys_lseek(file, 0, SEEK_END); - if (offset == -1) { - // lseek failed. Don't apply work around. It's unlikely that we can write - // to a minidump with either method. - return; - } - - int result = ftruncate(file, offset); - if (result == -1 && errno == EACCES) { - // It very likely that we are running into the kernel bug in M devices. - // We are going to deploy the workaround for writing minidump files - // without uses of ftruncate(). This workaround should be fine even - // for kernels without the bug. - // See http://crbug.com/542840 for more details. - g_need_ftruncate_workaround = true; - } -} - -bool NeedsFTruncateWorkAround() { - return g_need_ftruncate_workaround; -} - -} // namespace -#endif // defined(__ANDROID__) - -namespace google_breakpad { - -const MDRVA MinidumpFileWriter::kInvalidMDRVA = static_cast(-1); - -MinidumpFileWriter::MinidumpFileWriter() - : file_(-1), - close_file_when_destroyed_(true), - position_(0), - size_(0) { -} - -MinidumpFileWriter::~MinidumpFileWriter() { - if (close_file_when_destroyed_) - Close(); -} - -bool MinidumpFileWriter::Open(const char *path) { - assert(file_ == -1); -#if defined(__linux__) && __linux__ - file_ = sys_open(path, O_WRONLY | O_CREAT | O_EXCL, 0600); -#else - file_ = open(path, O_WRONLY | O_CREAT | O_EXCL, 0600); -#endif - - return file_ != -1; -} - -void MinidumpFileWriter::SetFile(const int file) { - assert(file_ == -1); - file_ = file; - close_file_when_destroyed_ = false; -#if defined(__ANDROID__) - CheckNeedsFTruncateWorkAround(file); -#endif -} - -bool MinidumpFileWriter::Close() { - bool result = true; - - if (file_ != -1) { -#if defined(__ANDROID__) - if (!NeedsFTruncateWorkAround() && ftruncate(file_, position_)) { - return false; - } -#else - if (ftruncate(file_, position_)) { - return false; - } -#endif -#if defined(__linux__) && __linux__ - result = (sys_close(file_) == 0); -#else - result = (close(file_) == 0); -#endif - file_ = -1; - } - - return result; -} - -bool MinidumpFileWriter::CopyStringToMDString(const wchar_t *str, - unsigned int length, - TypedMDRVA *mdstring) { - bool result = true; - if (sizeof(wchar_t) == sizeof(uint16_t)) { - // Shortcut if wchar_t is the same size as MDString's buffer - result = mdstring->Copy(str, mdstring->get()->length); - } else { - uint16_t out[2]; - int out_idx = 0; - - // Copy the string character by character - while (length && result) { - UTF32ToUTF16Char(*str, out); - if (!out[0]) - return false; - - // Process one character at a time - --length; - ++str; - - // Append the one or two UTF-16 characters. The first one will be non- - // zero, but the second one may be zero, depending on the conversion from - // UTF-32. - int out_count = out[1] ? 2 : 1; - size_t out_size = sizeof(uint16_t) * out_count; - result = mdstring->CopyIndexAfterObject(out_idx, out, out_size); - out_idx += out_count; - } - } - return result; -} - -bool MinidumpFileWriter::CopyStringToMDString(const char *str, - unsigned int length, - TypedMDRVA *mdstring) { - bool result = true; - uint16_t out[2]; - int out_idx = 0; - - // Copy the string character by character - while (length && result) { - int conversion_count = UTF8ToUTF16Char(str, length, out); - if (!conversion_count) - return false; - - // Move the pointer along based on the nubmer of converted characters - length -= conversion_count; - str += conversion_count; - - // Append the one or two UTF-16 characters - int out_count = out[1] ? 2 : 1; - size_t out_size = sizeof(uint16_t) * out_count; - result = mdstring->CopyIndexAfterObject(out_idx, out, out_size); - out_idx += out_count; - } - return result; -} - -template -bool MinidumpFileWriter::WriteStringCore(const CharType *str, - unsigned int length, - MDLocationDescriptor *location) { - assert(str); - assert(location); - // Calculate the mdstring length by either limiting to |length| as passed in - // or by finding the location of the NULL character. - unsigned int mdstring_length = 0; - if (!length) - length = INT_MAX; - for (; mdstring_length < length && str[mdstring_length]; ++mdstring_length) - ; - - // Allocate the string buffer - TypedMDRVA mdstring(this); - if (!mdstring.AllocateObjectAndArray(mdstring_length + 1, sizeof(uint16_t))) - return false; - - // Set length excluding the NULL and copy the string - mdstring.get()->length = - static_cast(mdstring_length * sizeof(uint16_t)); - bool result = CopyStringToMDString(str, mdstring_length, &mdstring); - - // NULL terminate - if (result) { - uint16_t ch = 0; - result = mdstring.CopyIndexAfterObject(mdstring_length, &ch, sizeof(ch)); - - if (result) - *location = mdstring.location(); - } - - return result; -} - -bool MinidumpFileWriter::WriteString(const wchar_t *str, unsigned int length, - MDLocationDescriptor *location) { - return WriteStringCore(str, length, location); -} - -bool MinidumpFileWriter::WriteString(const char *str, unsigned int length, - MDLocationDescriptor *location) { - return WriteStringCore(str, length, location); -} - -bool MinidumpFileWriter::WriteMemory(const void *src, size_t size, - MDMemoryDescriptor *output) { - assert(src); - assert(output); - UntypedMDRVA mem(this); - - if (!mem.Allocate(size)) - return false; - if (!mem.Copy(src, mem.size())) - return false; - - output->start_of_memory_range = reinterpret_cast(src); - output->memory = mem.location(); - - return true; -} - -MDRVA MinidumpFileWriter::Allocate(size_t size) { - assert(size); - assert(file_ != -1); -#if defined(__ANDROID__) - if (NeedsFTruncateWorkAround()) { - // If ftruncate() is not available. We simply increase the size beyond the - // current file size. sys_write() will expand the file when data is written - // to it. Because we did not over allocate to fit memory pages, we also - // do not need to ftruncate() the file once we are done. - size_ += size; - - // We don't need to seek since the file is unchanged. - MDRVA current_position = position_; - position_ += static_cast(size); - return current_position; - } -#endif - size_t aligned_size = (size + 7) & ~7; // 64-bit alignment - - if (position_ + aligned_size > size_) { - size_t growth = aligned_size; - size_t minimal_growth = getpagesize(); - - // Ensure that the file grows by at least the size of a memory page - if (growth < minimal_growth) - growth = minimal_growth; - - size_t new_size = size_ + growth; - if (ftruncate(file_, new_size) != 0) - return kInvalidMDRVA; - - size_ = new_size; - } - - MDRVA current_position = position_; - position_ += static_cast(aligned_size); - - return current_position; -} - -bool MinidumpFileWriter::Copy(MDRVA position, const void *src, ssize_t size) { - assert(src); - assert(size); - assert(file_ != -1); - - // Ensure that the data will fit in the allocated space - if (static_cast(size + position) > size_) - return false; - - // Seek and write the data -#if defined(__linux__) && __linux__ - if (sys_lseek(file_, position, SEEK_SET) == static_cast(position)) { - if (sys_write(file_, src, size) == size) { - return true; - } - } -#else - if (lseek(file_, position, SEEK_SET) == static_cast(position)) { - if (write(file_, src, size) == size) { - return true; - } - } -#endif - return false; -} - -bool UntypedMDRVA::Allocate(size_t size) { - assert(size_ == 0); - size_ = size; - position_ = writer_->Allocate(size_); - return position_ != MinidumpFileWriter::kInvalidMDRVA; -} - -bool UntypedMDRVA::Copy(MDRVA pos, const void *src, size_t size) { - assert(src); - assert(size); - assert(pos + size <= position_ + size_); - return writer_->Copy(pos, src, size); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/client/minidump_file_writer.h b/sources/google-breakpad/src/client/minidump_file_writer.h deleted file mode 100644 index ce32b6d0..00000000 --- a/sources/google-breakpad/src/client/minidump_file_writer.h +++ /dev/null @@ -1,272 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// minidump_file_writer.h: Implements file-based minidump generation. It's -// intended to be used with the Google Breakpad open source crash handling -// project. - -#ifndef CLIENT_MINIDUMP_FILE_WRITER_H__ -#define CLIENT_MINIDUMP_FILE_WRITER_H__ - -#include - -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -class UntypedMDRVA; -template class TypedMDRVA; - -// The user of this class can Open() a file and add minidump streams, data, and -// strings using the definitions in minidump_format.h. Since this class is -// expected to be used in a situation where the current process may be -// damaged, it will not allocate heap memory. -// Sample usage: -// MinidumpFileWriter writer; -// writer.Open("/tmp/minidump.dmp"); -// TypedMDRVA header(&writer_); -// header.Allocate(); -// header->get()->signature = MD_HEADER_SIGNATURE; -// : -// writer.Close(); -// -// An alternative is to use SetFile and provide a file descriptor: -// MinidumpFileWriter writer; -// writer.SetFile(minidump_fd); -// TypedMDRVA header(&writer_); -// header.Allocate(); -// header->get()->signature = MD_HEADER_SIGNATURE; -// : -// writer.Close(); - -class MinidumpFileWriter { -public: - // Invalid MDRVA (Minidump Relative Virtual Address) - // returned on failed allocation - static const MDRVA kInvalidMDRVA; - - MinidumpFileWriter(); - ~MinidumpFileWriter(); - - // Open |path| as the destination of the minidump data. If |path| already - // exists, then Open() will fail. - // Return true on success, or false on failure. - bool Open(const char *path); - - // Sets the file descriptor |file| as the destination of the minidump data. - // Can be used as an alternative to Open() when a file descriptor is - // available. - // Note that |fd| is not closed when the instance of MinidumpFileWriter is - // destroyed. - void SetFile(const int file); - - // Close the current file (that was either created when Open was called, or - // specified with SetFile). - // Return true on success, or false on failure. - bool Close(); - - // Copy the contents of |str| to a MDString and write it to the file. - // |str| is expected to be either UTF-16 or UTF-32 depending on the size - // of wchar_t. - // Maximum |length| of characters to copy from |str|, or specify 0 to use the - // entire NULL terminated string. Copying will stop at the first NULL. - // |location| the allocated location - // Return true on success, or false on failure - bool WriteString(const wchar_t *str, unsigned int length, - MDLocationDescriptor *location); - - // Same as above, except with |str| as a UTF-8 string - bool WriteString(const char *str, unsigned int length, - MDLocationDescriptor *location); - - // Write |size| bytes starting at |src| into the current position. - // Return true on success and set |output| to position, or false on failure - bool WriteMemory(const void *src, size_t size, MDMemoryDescriptor *output); - - // Copies |size| bytes from |src| to |position| - // Return true on success, or false on failure - bool Copy(MDRVA position, const void *src, ssize_t size); - - // Return the current position for writing to the minidump - inline MDRVA position() const { return position_; } - - private: - friend class UntypedMDRVA; - - // Allocates an area of |size| bytes. - // Returns the position of the allocation, or kInvalidMDRVA if it was - // unable to allocate the bytes. - MDRVA Allocate(size_t size); - - // The file descriptor for the output file. - int file_; - - // Whether |file_| should be closed when the instance is destroyed. - bool close_file_when_destroyed_; - - // Current position in buffer - MDRVA position_; - - // Current allocated size - size_t size_; - - // Copy |length| characters from |str| to |mdstring|. These are distinct - // because the underlying MDString is a UTF-16 based string. The wchar_t - // variant may need to create a MDString that has more characters than the - // source |str|, whereas the UTF-8 variant may coalesce characters to form - // a single UTF-16 character. - bool CopyStringToMDString(const wchar_t *str, unsigned int length, - TypedMDRVA *mdstring); - bool CopyStringToMDString(const char *str, unsigned int length, - TypedMDRVA *mdstring); - - // The common templated code for writing a string - template - bool WriteStringCore(const CharType *str, unsigned int length, - MDLocationDescriptor *location); -}; - -// Represents an untyped allocated chunk -class UntypedMDRVA { - public: - explicit UntypedMDRVA(MinidumpFileWriter *writer) - : writer_(writer), - position_(writer->position()), - size_(0) {} - - // Allocates |size| bytes. Must not call more than once. - // Return true on success, or false on failure - bool Allocate(size_t size); - - // Returns the current position or kInvalidMDRVA if allocation failed - inline MDRVA position() const { return position_; } - - // Number of bytes allocated - inline size_t size() const { return size_; } - - // Return size and position - inline MDLocationDescriptor location() const { - MDLocationDescriptor location = { static_cast(size_), - position_ }; - return location; - } - - // Copy |size| bytes starting at |src| into the minidump at |position| - // Return true on success, or false on failure - bool Copy(MDRVA position, const void *src, size_t size); - - // Copy |size| bytes from |src| to the current position - inline bool Copy(const void *src, size_t size) { - return Copy(position_, src, size); - } - - protected: - // Writer we associate with - MinidumpFileWriter *writer_; - - // Position of the start of the data - MDRVA position_; - - // Allocated size - size_t size_; -}; - -// Represents a Minidump object chunk. Additional memory can be allocated at -// the end of the object as a: -// - single allocation -// - Array of MDType objects -// - A MDType object followed by an array -template -class TypedMDRVA : public UntypedMDRVA { - public: - // Constructs an unallocated MDRVA - explicit TypedMDRVA(MinidumpFileWriter *writer) - : UntypedMDRVA(writer), - data_(), - allocation_state_(UNALLOCATED) {} - - inline ~TypedMDRVA() { - // Ensure that the data_ object is written out - if (allocation_state_ != ARRAY) - Flush(); - } - - // Address of object data_ of MDType. This is not declared const as the - // typical usage will be to access the underlying |data_| object as to - // alter its contents. - MDType *get() { return &data_; } - - // Allocates minidump_size::size() bytes. - // Must not call more than once. - // Return true on success, or false on failure - bool Allocate(); - - // Allocates minidump_size::size() + |additional| bytes. - // Must not call more than once. - // Return true on success, or false on failure - bool Allocate(size_t additional); - - // Allocate an array of |count| elements of MDType. - // Must not call more than once. - // Return true on success, or false on failure - bool AllocateArray(size_t count); - - // Allocate an array of |count| elements of |size| after object of MDType - // Must not call more than once. - // Return true on success, or false on failure - bool AllocateObjectAndArray(size_t count, size_t size); - - // Copy |item| to |index| - // Must have been allocated using AllocateArray(). - // Return true on success, or false on failure - bool CopyIndex(unsigned int index, MDType *item); - - // Copy |size| bytes starting at |str| to |index| - // Must have been allocated using AllocateObjectAndArray(). - // Return true on success, or false on failure - bool CopyIndexAfterObject(unsigned int index, const void *src, size_t size); - - // Write data_ - bool Flush(); - - private: - enum AllocationState { - UNALLOCATED = 0, - SINGLE_OBJECT, - ARRAY, - SINGLE_OBJECT_WITH_ARRAY - }; - - MDType data_; - AllocationState allocation_state_; -}; - -} // namespace google_breakpad - -#endif // CLIENT_MINIDUMP_FILE_WRITER_H__ diff --git a/sources/google-breakpad/src/common/android/breakpad_getcontext.S b/sources/google-breakpad/src/common/android/breakpad_getcontext.S deleted file mode 100644 index fd6326ad..00000000 --- a/sources/google-breakpad/src/common/android/breakpad_getcontext.S +++ /dev/null @@ -1,489 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// A minimalistic implementation of getcontext() to be used by -// Google Breakpad on Android. - -#include "common/android/ucontext_constants.h" - -/* int getcontext (ucontext_t *ucp) */ - -#if defined(__arm__) - - .text - .global breakpad_getcontext - .hidden breakpad_getcontext - .type breakpad_getcontext, #function - .align 0 - .fnstart -breakpad_getcontext: - - /* First, save r4-r11 */ - add r1, r0, #(MCONTEXT_GREGS_OFFSET + 4*4) - stm r1, {r4-r11} - - /* r12 is a scratch register, don't save it */ - - /* Save sp and lr explicitly. */ - /* - sp can't be stored with stmia in Thumb-2 */ - /* - STM instructions that store sp and pc are deprecated in ARM */ - str sp, [r0, #(MCONTEXT_GREGS_OFFSET + 13*4)] - str lr, [r0, #(MCONTEXT_GREGS_OFFSET + 14*4)] - - /* Save the caller's address in 'pc' */ - str lr, [r0, #(MCONTEXT_GREGS_OFFSET + 15*4)] - - /* Save ucontext_t* pointer across next call */ - mov r4, r0 - - /* Call sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */ - mov r0, #0 /* SIG_BLOCK */ - mov r1, #0 /* NULL */ - add r2, r4, #UCONTEXT_SIGMASK_OFFSET - bl sigprocmask(PLT) - - /* Intentionally do not save the FPU state here. This is because on - * Linux/ARM, one should instead use ptrace(PTRACE_GETFPREGS) or - * ptrace(PTRACE_GETVFPREGS) to get it. - * - * Note that a real implementation of getcontext() would need to save - * this here to allow setcontext()/swapcontext() to work correctly. - */ - - /* Restore the values of r4 and lr */ - mov r0, r4 - ldr lr, [r0, #(MCONTEXT_GREGS_OFFSET + 14*4)] - ldr r4, [r0, #(MCONTEXT_GREGS_OFFSET + 4*4)] - - /* Return 0 */ - mov r0, #0 - bx lr - - .fnend - .size breakpad_getcontext, . - breakpad_getcontext - -#elif defined(__aarch64__) - -#define _NSIG 64 -#define __NR_rt_sigprocmask 135 - - .text - .global breakpad_getcontext - .hidden breakpad_getcontext - .type breakpad_getcontext, #function - .align 4 - .cfi_startproc -breakpad_getcontext: - - /* The saved context will return to the getcontext() call point - with a return value of 0 */ - str xzr, [x0, MCONTEXT_GREGS_OFFSET + 0 * REGISTER_SIZE] - - stp x18, x19, [x0, MCONTEXT_GREGS_OFFSET + 18 * REGISTER_SIZE] - stp x20, x21, [x0, MCONTEXT_GREGS_OFFSET + 20 * REGISTER_SIZE] - stp x22, x23, [x0, MCONTEXT_GREGS_OFFSET + 22 * REGISTER_SIZE] - stp x24, x25, [x0, MCONTEXT_GREGS_OFFSET + 24 * REGISTER_SIZE] - stp x26, x27, [x0, MCONTEXT_GREGS_OFFSET + 26 * REGISTER_SIZE] - stp x28, x29, [x0, MCONTEXT_GREGS_OFFSET + 28 * REGISTER_SIZE] - str x30, [x0, MCONTEXT_GREGS_OFFSET + 30 * REGISTER_SIZE] - - /* Place LR into the saved PC, this will ensure that when - switching to this saved context with setcontext() control - will pass back to the caller of getcontext(), we have - already arranged to return the appropriate return value in x0 - above. */ - str x30, [x0, MCONTEXT_PC_OFFSET] - - /* Save the current SP */ - mov x2, sp - str x2, [x0, MCONTEXT_SP_OFFSET] - - /* Initialize the pstate. */ - str xzr, [x0, MCONTEXT_PSTATE_OFFSET] - - /* Figure out where to place the first context extension - block. */ - add x2, x0, #MCONTEXT_EXTENSION_OFFSET - - /* Write the context extension fpsimd header. */ - mov w3, #(FPSIMD_MAGIC & 0xffff) - movk w3, #(FPSIMD_MAGIC >> 16), lsl #16 - str w3, [x2, #FPSIMD_CONTEXT_MAGIC_OFFSET] - mov w3, #FPSIMD_CONTEXT_SIZE - str w3, [x2, #FPSIMD_CONTEXT_SIZE_OFFSET] - - /* Fill in the FP SIMD context. */ - add x3, x2, #(FPSIMD_CONTEXT_VREGS_OFFSET + 8 * SIMD_REGISTER_SIZE) - stp d8, d9, [x3], #(2 * SIMD_REGISTER_SIZE) - stp d10, d11, [x3], #(2 * SIMD_REGISTER_SIZE) - stp d12, d13, [x3], #(2 * SIMD_REGISTER_SIZE) - stp d14, d15, [x3], #(2 * SIMD_REGISTER_SIZE) - - add x3, x2, FPSIMD_CONTEXT_FPSR_OFFSET - - mrs x4, fpsr - str w4, [x3] - - mrs x4, fpcr - str w4, [x3, FPSIMD_CONTEXT_FPCR_OFFSET - FPSIMD_CONTEXT_FPSR_OFFSET] - - /* Write the termination context extension header. */ - add x2, x2, #FPSIMD_CONTEXT_SIZE - - str xzr, [x2, #FPSIMD_CONTEXT_MAGIC_OFFSET] - str xzr, [x2, #FPSIMD_CONTEXT_SIZE_OFFSET] - - /* Grab the signal mask */ - /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ - add x2, x0, #UCONTEXT_SIGMASK_OFFSET - mov x0, #0 /* SIG_BLOCK */ - mov x1, #0 /* NULL */ - mov x3, #(_NSIG / 8) - mov x8, #__NR_rt_sigprocmask - svc 0 - - /* Return x0 for success */ - mov x0, 0 - ret - - .cfi_endproc - .size breakpad_getcontext, . - breakpad_getcontext - -#elif defined(__i386__) - - .text - .global breakpad_getcontext - .hidden breakpad_getcontext - .align 4 - .type breakpad_getcontext, @function - -breakpad_getcontext: - - movl 4(%esp), %eax /* eax = uc */ - - /* Save register values */ - movl %ecx, MCONTEXT_ECX_OFFSET(%eax) - movl %edx, MCONTEXT_EDX_OFFSET(%eax) - movl %ebx, MCONTEXT_EBX_OFFSET(%eax) - movl %edi, MCONTEXT_EDI_OFFSET(%eax) - movl %esi, MCONTEXT_ESI_OFFSET(%eax) - movl %ebp, MCONTEXT_EBP_OFFSET(%eax) - - movl (%esp), %edx /* return address */ - lea 4(%esp), %ecx /* exclude return address from stack */ - mov %edx, MCONTEXT_EIP_OFFSET(%eax) - mov %ecx, MCONTEXT_ESP_OFFSET(%eax) - - xorl %ecx, %ecx - movw %fs, %cx - mov %ecx, MCONTEXT_FS_OFFSET(%eax) - - movl $0, MCONTEXT_EAX_OFFSET(%eax) - - /* Save floating point state to fpregstate, then update - * the fpregs pointer to point to it */ - leal UCONTEXT_FPREGS_MEM_OFFSET(%eax), %ecx - fnstenv (%ecx) - fldenv (%ecx) - mov %ecx, UCONTEXT_FPREGS_OFFSET(%eax) - - /* Save signal mask: sigprocmask(SIGBLOCK, NULL, &uc->uc_sigmask) */ - leal UCONTEXT_SIGMASK_OFFSET(%eax), %edx - xorl %ecx, %ecx - push %edx /* &uc->uc_sigmask */ - push %ecx /* NULL */ - push %ecx /* SIGBLOCK == 0 on i386 */ - call sigprocmask@PLT - addl $12, %esp - - movl $0, %eax - ret - - .size breakpad_getcontext, . - breakpad_getcontext - -#elif defined(__mips__) - -// This implementation is inspired by implementation of getcontext in glibc. -#if _MIPS_SIM == _ABIO32 -#include -#include -#include -#else -#include -#include -#endif - -// from asm/asm.h -#if _MIPS_SIM == _ABIO32 -#define ALSZ 7 -#define ALMASK ~7 -#define SZREG 4 -#else // _MIPS_SIM != _ABIO32 -#define ALSZ 15 -#define ALMASK ~15 -#define SZREG 8 -#endif - -#include // for __NR_rt_sigprocmask - -#define _NSIG8 128 / 8 -#define SIG_BLOCK 1 - - - .text -LOCALS_NUM = 1 // save gp on stack -FRAME_SIZE = ((LOCALS_NUM * SZREG) + ALSZ) & ALMASK - -GP_FRAME_OFFSET = FRAME_SIZE - (1 * SZREG) -MCONTEXT_REG_SIZE = 8 - -#if _MIPS_SIM == _ABIO32 - -NESTED (breakpad_getcontext, FRAME_SIZE, ra) - .mask 0x00000000, 0 - .fmask 0x00000000, 0 - - .set noreorder - .cpload t9 - .set reorder - - move a2, sp -#define _SP a2 - - addiu sp, -FRAME_SIZE - .cprestore GP_FRAME_OFFSET - - sw s0, (16 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s1, (17 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s2, (18 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s3, (19 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s4, (20 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s5, (21 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s6, (22 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw s7, (23 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw _SP, (29 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw fp, (30 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw ra, (31 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sw ra, MCONTEXT_PC_OFFSET(a0) - -#ifdef __mips_hard_float - s.d fs0, (20 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d fs1, (22 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d fs2, (24 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d fs3, (26 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d fs4, (28 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d fs5, (30 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - - cfc1 v1, fcr31 - sw v1, MCONTEXT_FPC_CSR(a0) -#endif // __mips_hard_float - - /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ - li a3, _NSIG8 - addu a2, a0, UCONTEXT_SIGMASK_OFFSET - move a1, zero - li a0, SIG_BLOCK - li v0, __NR_rt_sigprocmask - syscall - - addiu sp, FRAME_SIZE - jr ra - -END (breakpad_getcontext) -#else - -#ifndef NESTED -/* - * NESTED - declare nested routine entry point - */ -#define NESTED(symbol, framesize, rpc) \ - .globl symbol; \ - .align 2; \ - .type symbol,@function; \ - .ent symbol,0; \ -symbol: .frame sp, framesize, rpc; -#endif - -/* - * END - mark end of function - */ -#ifndef END -# define END(function) \ - .end function; \ - .size function,.-function -#endif - -/* int getcontext (ucontext_t *ucp) */ - -NESTED (breakpad_getcontext, FRAME_SIZE, ra) - .mask 0x10000000, 0 - .fmask 0x00000000, 0 - - move a2, sp -#define _SP a2 - move a3, gp -#define _GP a3 - - daddiu sp, -FRAME_SIZE - .cpsetup $25, GP_FRAME_OFFSET, breakpad_getcontext - - /* Store a magic flag. */ - li v1, 1 - sd v1, (0 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) /* zero */ - - sd s0, (16 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s1, (17 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s2, (18 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s3, (19 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s4, (20 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s5, (21 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s6, (22 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s7, (23 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd _GP, (28 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd _SP, (29 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd s8, (30 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd ra, (31 * MCONTEXT_REG_SIZE + MCONTEXT_GREGS_OFFSET)(a0) - sd ra, MCONTEXT_PC_OFFSET(a0) - -#ifdef __mips_hard_float - s.d $f24, (24 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f25, (25 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f26, (26 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f27, (27 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f28, (28 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f29, (29 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f30, (30 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - s.d $f31, (31 * MCONTEXT_REG_SIZE + MCONTEXT_FPREGS_OFFSET)(a0) - - cfc1 v1, $31 - sw v1, MCONTEXT_FPC_CSR(a0) -#endif /* __mips_hard_float */ - -/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */ - li a3, _NSIG8 - daddu a2, a0, UCONTEXT_SIGMASK_OFFSET - move a1, zero - li a0, SIG_BLOCK - - li v0, __NR_rt_sigprocmask - syscall - - .cpreturn - daddiu sp, FRAME_SIZE - move v0, zero - jr ra - -END (breakpad_getcontext) -#endif // _MIPS_SIM == _ABIO32 - -#elif defined(__x86_64__) -/* The x64 implementation of breakpad_getcontext was derived in part - from the implementation of libunwind which requires the following - notice. */ -/* libunwind - a platform-independent unwind library - Copyright (C) 2008 Google, Inc - Contributed by Paul Pluzhnikov - Copyright (C) 2010 Konstantin Belousov - -This file is part of libunwind. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ - - .text - .global breakpad_getcontext - .hidden breakpad_getcontext - .align 4 - .type breakpad_getcontext, @function - -breakpad_getcontext: - .cfi_startproc - - /* Callee saved: RBX, RBP, R12-R15 */ - movq %r12, MCONTEXT_GREGS_R12(%rdi) - movq %r13, MCONTEXT_GREGS_R13(%rdi) - movq %r14, MCONTEXT_GREGS_R14(%rdi) - movq %r15, MCONTEXT_GREGS_R15(%rdi) - movq %rbp, MCONTEXT_GREGS_RBP(%rdi) - movq %rbx, MCONTEXT_GREGS_RBX(%rdi) - - /* Save argument registers (not strictly needed, but setcontext - restores them, so don't restore garbage). */ - movq %r8, MCONTEXT_GREGS_R8(%rdi) - movq %r9, MCONTEXT_GREGS_R9(%rdi) - movq %rdi, MCONTEXT_GREGS_RDI(%rdi) - movq %rsi, MCONTEXT_GREGS_RSI(%rdi) - movq %rdx, MCONTEXT_GREGS_RDX(%rdi) - movq %rax, MCONTEXT_GREGS_RAX(%rdi) - movq %rcx, MCONTEXT_GREGS_RCX(%rdi) - - /* Save fp state (not needed, except for setcontext not - restoring garbage). */ - leaq MCONTEXT_FPREGS_MEM(%rdi),%r8 - movq %r8, MCONTEXT_FPREGS_PTR(%rdi) - fnstenv (%r8) - stmxcsr FPREGS_OFFSET_MXCSR(%r8) - - leaq 8(%rsp), %rax /* exclude this call. */ - movq %rax, MCONTEXT_GREGS_RSP(%rdi) - - movq 0(%rsp), %rax - movq %rax, MCONTEXT_GREGS_RIP(%rdi) - - /* Save signal mask: sigprocmask(SIGBLOCK, NULL, &uc->uc_sigmask) */ - leaq UCONTEXT_SIGMASK_OFFSET(%rdi), %rdx // arg3 - xorq %rsi, %rsi // arg2 NULL - xorq %rdi, %rdi // arg1 SIGBLOCK == 0 - call sigprocmask@PLT - - /* Always return 0 for success, even if sigprocmask failed. */ - xorl %eax, %eax - ret - .cfi_endproc - .size breakpad_getcontext, . - breakpad_getcontext - -#else -#error "This file has not been ported for your CPU!" -#endif diff --git a/sources/google-breakpad/src/common/android/include/elf.h b/sources/google-breakpad/src/common/android/include/elf.h deleted file mode 100644 index b2a28df4..00000000 --- a/sources/google-breakpad/src/common/android/include/elf.h +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -// The Android provides BSD-based definitions for the ElfXX_Nhdr -// types -// always source-compatible with the GLibc/kernel ones. To overcome this -// issue without modifying a lot of code in Breakpad, use an ugly macro -// renaming trick with #include_next - -// Avoid conflict with BSD-based definition of ElfXX_Nhdr. -// Unfortunately, their field member names do not use a 'n_' prefix. -#define Elf32_Nhdr __bsd_Elf32_Nhdr -#define Elf64_Nhdr __bsd_Elf64_Nhdr - -// In case they are defined by the NDK version -#define Elf32_auxv_t __bionic_Elf32_auxv_t -#define Elf64_auxv_t __bionic_Elf64_auxv_t - -#define Elf32_Dyn __bionic_Elf32_Dyn -#define Elf64_Dyn __bionic_Elf64_Dyn - -#include_next - -#undef Elf32_Nhdr -#undef Elf64_Nhdr - -typedef struct { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; -} Elf32_Nhdr; - -typedef struct { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; -} Elf64_Nhdr; - -#undef Elf32_auxv_t -#undef Elf64_auxv_t - -typedef struct { - uint32_t a_type; - union { - uint32_t a_val; - } a_un; -} Elf32_auxv_t; - -typedef struct { - uint64_t a_type; - union { - uint64_t a_val; - } a_un; -} Elf64_auxv_t; - -#undef Elf32_Dyn -#undef Elf64_Dyn - -typedef struct { - Elf32_Sword d_tag; - union { - Elf32_Word d_val; - Elf32_Addr d_ptr; - } d_un; -} Elf32_Dyn; - -typedef struct { - Elf64_Sxword d_tag; - union { - Elf64_Xword d_val; - Elf64_Addr d_ptr; - } d_un; -} Elf64_Dyn; - - -// __WORDSIZE is GLibc-specific and used by Google Breakpad on Linux. -#ifndef __WORDSIZE -#if defined(__i386__) || defined(__ARM_EABI__) || defined(__mips__) -#define __WORDSIZE 32 -#elif defined(__x86_64__) || defined(__aarch64__) -#define __WORDSIZE 64 -#else -#error "Unsupported Android CPU ABI" -#endif -#endif - -// The Android headers don't always define this constant. -#ifndef EM_X86_64 -#define EM_X86_64 62 -#endif - -#ifndef EM_PPC64 -#define EM_PPC64 21 -#endif - -#ifndef EM_S390 -#define EM_S390 22 -#endif - -#if !defined(AT_SYSINFO_EHDR) -#define AT_SYSINFO_EHDR 33 -#endif - -#if !defined(NT_PRSTATUS) -#define NT_PRSTATUS 1 -#endif - -#if !defined(NT_PRPSINFO) -#define NT_PRPSINFO 3 -#endif - -#if !defined(NT_AUXV) -#define NT_AUXV 6 -#endif - -#if !defined(NT_PRXFPREG) -#define NT_PRXFPREG 0x46e62b7f -#endif - -#if !defined(NT_FPREGSET) -#define NT_FPREGSET 2 -#endif - -#if !defined(SHT_MIPS_DWARF) -#define SHT_MIPS_DWARF 0x7000001e -#endif - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_ELF_H diff --git a/sources/google-breakpad/src/common/android/include/link.h b/sources/google-breakpad/src/common/android/include/link.h deleted file mode 100644 index e7ff8e2d..00000000 --- a/sources/google-breakpad/src/common/android/include/link.h +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H -#define GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H - -/* Android doesn't provide all the data-structures required in its . - Provide custom version here. */ -#include_next - -// TODO(rmcilroy): Remove this file once the ndk is updated for other -// architectures - crbug.com/358831 -#if !defined(__aarch64__) && !defined(__x86_64__) && \ - !(defined(__mips__) && _MIPS_SIM == _ABI64) - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -struct r_debug { - int r_version; - struct link_map* r_map; - ElfW(Addr) r_brk; - enum { - RT_CONSISTENT, - RT_ADD, - RT_DELETE } r_state; - ElfW(Addr) r_ldbase; -}; - -struct link_map { - ElfW(Addr) l_addr; - char* l_name; - ElfW(Dyn)* l_ld; - struct link_map* l_next; - struct link_map* l_prev; -}; - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // !defined(__aarch64__) && !defined(__x86_64__) - -#endif /* GOOGLE_BREAKPAD_ANDROID_INCLUDE_LINK_H */ diff --git a/sources/google-breakpad/src/common/android/include/sgidefs.h b/sources/google-breakpad/src/common/android/include/sgidefs.h deleted file mode 100644 index 33796dcf..00000000 --- a/sources/google-breakpad/src/common/android/include/sgidefs.h +++ /dev/null @@ -1,41 +0,0 @@ -// Copyright (c) 2013, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H -#define GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H - -#ifdef __mips__ - -// Android doesn't contain sgidefs.h, but does have which -// contains what we need. -#include - -#endif // __mips__ - -#endif // GOOGLE_BREAKPAD_ANDROID_INCLUDE_SGIDEFS_H diff --git a/sources/google-breakpad/src/common/android/include/stab.h b/sources/google-breakpad/src/common/android/include/stab.h deleted file mode 100644 index cd929021..00000000 --- a/sources/google-breakpad/src/common/android/include/stab.h +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H - -#include - -#ifdef __BIONIC_HAVE_STAB_H -#include -#else - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -#define _STAB_CODE_LIST \ - _STAB_CODE_DEF(UNDF,0x00) \ - _STAB_CODE_DEF(GSYM,0x20) \ - _STAB_CODE_DEF(FNAME,0x22) \ - _STAB_CODE_DEF(FUN,0x24) \ - _STAB_CODE_DEF(STSYM,0x26) \ - _STAB_CODE_DEF(LCSYM,0x28) \ - _STAB_CODE_DEF(MAIN,0x2a) \ - _STAB_CODE_DEF(PC,0x30) \ - _STAB_CODE_DEF(NSYMS,0x32) \ - _STAB_CODE_DEF(NOMAP,0x34) \ - _STAB_CODE_DEF(OBJ,0x38) \ - _STAB_CODE_DEF(OPT,0x3c) \ - _STAB_CODE_DEF(RSYM,0x40) \ - _STAB_CODE_DEF(M2C,0x42) \ - _STAB_CODE_DEF(SLINE,0x44) \ - _STAB_CODE_DEF(DSLINE,0x46) \ - _STAB_CODE_DEF(BSLINE,0x48) \ - _STAB_CODE_DEF(BROWS,0x48) \ - _STAB_CODE_DEF(DEFD,0x4a) \ - _STAB_CODE_DEF(EHDECL,0x50) \ - _STAB_CODE_DEF(MOD2,0x50) \ - _STAB_CODE_DEF(CATCH,0x54) \ - _STAB_CODE_DEF(SSYM,0x60) \ - _STAB_CODE_DEF(SO,0x64) \ - _STAB_CODE_DEF(LSYM,0x80) \ - _STAB_CODE_DEF(BINCL,0x82) \ - _STAB_CODE_DEF(SOL,0x84) \ - _STAB_CODE_DEF(PSYM,0xa0) \ - _STAB_CODE_DEF(EINCL,0xa2) \ - _STAB_CODE_DEF(ENTRY,0xa4) \ - _STAB_CODE_DEF(LBRAC,0xc0) \ - _STAB_CODE_DEF(EXCL,0xc2) \ - _STAB_CODE_DEF(SCOPE,0xc4) \ - _STAB_CODE_DEF(RBRAC,0xe0) \ - _STAB_CODE_DEF(BCOMM,0xe2) \ - _STAB_CODE_DEF(ECOMM,0xe4) \ - _STAB_CODE_DEF(ECOML,0xe8) \ - _STAB_CODE_DEF(NBTEXT,0xf0) \ - _STAB_CODE_DEF(NBDATA,0xf2) \ - _STAB_CODE_DEF(NBBSS,0xf4) \ - _STAB_CODE_DEF(NBSTS,0xf6) \ - _STAB_CODE_DEF(NBLCS,0xf8) \ - _STAB_CODE_DEF(LENG,0xfe) - -enum __stab_debug_code { -#define _STAB_CODE_DEF(x,y) N_##x = y, -_STAB_CODE_LIST -#undef _STAB_CODE_DEF -}; - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // __BIONIC_HAVE_STAB_H - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H diff --git a/sources/google-breakpad/src/common/android/include/sys/procfs.h b/sources/google-breakpad/src/common/android/include/sys/procfs.h deleted file mode 100644 index 18512436..00000000 --- a/sources/google-breakpad/src/common/android/include/sys/procfs.h +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H - -#ifdef __BIONIC_HAVE_SYS_PROCFS_H - -#include_next - -#else - -#include -#include -#if defined (__mips__) -#include -#endif -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -#if defined(__x86_64__) || defined(__aarch64__) -typedef unsigned long long elf_greg_t; -#else -typedef unsigned long elf_greg_t; -#endif - -#ifdef __arm__ -#define ELF_NGREG (sizeof(struct user_regs) / sizeof(elf_greg_t)) -#elif defined(__aarch64__) -#define ELF_NGREG (sizeof(struct user_pt_regs) / sizeof(elf_greg_t)) -#elif defined(__mips__) -#define ELF_NGREG 45 -#else -#define ELF_NGREG (sizeof(struct user_regs_struct) / sizeof(elf_greg_t)) -#endif - -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; - -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; -}; - -struct elf_prstatus { - struct elf_siginfo pr_info; - short pr_cursig; - unsigned long pr_sigpend; - unsigned long pr_sighold; - pid_t pr_pid; - pid_t pr_ppid; - pid_t pr_pgrp; - pid_t pd_sid; - struct timeval pr_utime; - struct timeval pr_stime; - struct timeval pr_cutime; - struct timeval pr_cstime; - elf_gregset_t pr_reg; - int pr_fpvalid; -}; - -#define ELF_PRARGSZ 80 - -struct elf_prpsinfo { - char pr_state; - char pr_sname; - char pr_zomb; - char pr_nice; - unsigned long pr_flags; -#ifdef __x86_64__ - unsigned int pr_uid; - unsigned int pr_gid; -#elif defined(__mips__) - __kernel_uid_t pr_uid; - __kernel_gid_t pr_gid; -#else - unsigned short pr_uid; - unsigned short pr_gid; -#endif - int pr_pid; - int pr_ppid; - int pr_pgrp; - int pr_sid; - char pr_fname[16]; - char pr_psargs[ELF_PRARGSZ]; -}; - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // __BIONIC_HAVE_SYS_PROCFS_H - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_SYS_PROCFS_H diff --git a/sources/google-breakpad/src/common/android/include/sys/signal.h b/sources/google-breakpad/src/common/android/include/sys/signal.h deleted file mode 100644 index 20c81e93..00000000 --- a/sources/google-breakpad/src/common/android/include/sys/signal.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H - -#include - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_SIGNAL_H diff --git a/sources/google-breakpad/src/common/android/include/sys/user.h b/sources/google-breakpad/src/common/android/include/sys/user.h deleted file mode 100644 index 2d6edffa..00000000 --- a/sources/google-breakpad/src/common/android/include/sys/user.h +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H - -// The purpose of this file is to glue the mismatching headers (Android NDK vs -// glibc) and therefore avoid doing otherwise awkward #ifdefs in the code. -// The following quirks are currently handled by this file: -// - i386: Use the Android NDK but alias user_fxsr_struct > user_fpxregs_struct. -// - aarch64: Add missing user_regs_struct and user_fpsimd_struct structs. -// - Other platforms: Just use the Android NDK unchanged. - -// TODO(primiano): remove these changes after Chromium has stably rolled to -// an NDK with the appropriate fixes. - -#if __ANDROID_API__ < 21 -#include_next -#endif - -#ifdef __i386__ -#if __ANDROID_API__ >= 21 -#include_next -#endif - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus -typedef struct user_fxsr_struct user_fpxregs_struct; -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus -#endif // __i386__ - -#ifdef __aarch64__ -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus -struct user_regs_struct { - __u64 regs[31]; - __u64 sp; - __u64 pc; - __u64 pstate; -}; -struct user_fpsimd_struct { - __uint128_t vregs[32]; - __u32 fpsr; - __u32 fpcr; -}; -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus -#endif // __aarch64__ - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_SYS_USER_H diff --git a/sources/google-breakpad/src/common/android/include/ucontext.h b/sources/google-breakpad/src/common/android/include/ucontext.h deleted file mode 100644 index 29db8ade..00000000 --- a/sources/google-breakpad/src/common/android/include/ucontext.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H -#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H - -#include - -#ifdef __BIONIC_UCONTEXT_H -#include -#else - -#include - -#ifdef __cplusplus -extern "C" { -#endif // __cplusplus - -// Provided by src/android/common/breakpad_getcontext.S -int breakpad_getcontext(ucontext_t* ucp); - -#define getcontext(x) breakpad_getcontext(x) - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif // __BIONIC_UCONTEXT_H - -#endif // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_UCONTEXT_H diff --git a/sources/google-breakpad/src/common/android/ucontext_constants.h b/sources/google-breakpad/src/common/android/ucontext_constants.h deleted file mode 100644 index 1932d573..00000000 --- a/sources/google-breakpad/src/common/android/ucontext_constants.h +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// This header can be included either from a C, C++ or Assembly file. -// Its purpose is to contain constants that must match the offsets of -// various fields in ucontext_t. -// -// They should match the definitions from -// src/common/android/include/sys/ucontext.h -// -// Used by src/common/android/breakpad_getcontext.S -// Tested by src/common/android/testing/breakpad_getcontext_unittest.cc - -#ifndef GOOGLEBREAKPAD_COMMON_ANDROID_UCONTEXT_CONSTANTS_H -#define GOOGLEBREAKPAD_COMMON_ANDROID_UCONTEXT_CONSTANTS_H - -#if defined(__arm__) - -#define MCONTEXT_GREGS_OFFSET 32 -#define UCONTEXT_SIGMASK_OFFSET 104 - -#elif defined(__aarch64__) - -#define UCONTEXT_SIGMASK_OFFSET 40 - -#define MCONTEXT_GREGS_OFFSET 184 -#define MCONTEXT_SP_OFFSET 432 -#define MCONTEXT_PC_OFFSET 440 -#define MCONTEXT_PSTATE_OFFSET 448 -#define MCONTEXT_EXTENSION_OFFSET 464 - -#define FPSIMD_MAGIC 0x46508001 - -#define FPSIMD_CONTEXT_MAGIC_OFFSET 0 -#define FPSIMD_CONTEXT_SIZE_OFFSET 4 -#define FPSIMD_CONTEXT_FPSR_OFFSET 8 -#define FPSIMD_CONTEXT_FPCR_OFFSET 12 -#define FPSIMD_CONTEXT_VREGS_OFFSET 16 -#define FPSIMD_CONTEXT_SIZE 528 - -#define REGISTER_SIZE 8 -#define SIMD_REGISTER_SIZE 16 - -#elif defined(__i386__) - -#define MCONTEXT_GREGS_OFFSET 20 -#define MCONTEXT_GS_OFFSET (MCONTEXT_GREGS_OFFSET + 0*4) -#define MCONTEXT_FS_OFFSET (MCONTEXT_GREGS_OFFSET + 1*4) -#define MCONTEXT_ES_OFFSET (MCONTEXT_GREGS_OFFSET + 2*4) -#define MCONTEXT_DS_OFFSET (MCONTEXT_GREGS_OFFSET + 3*4) -#define MCONTEXT_EDI_OFFSET (MCONTEXT_GREGS_OFFSET + 4*4) -#define MCONTEXT_ESI_OFFSET (MCONTEXT_GREGS_OFFSET + 5*4) -#define MCONTEXT_EBP_OFFSET (MCONTEXT_GREGS_OFFSET + 6*4) -#define MCONTEXT_ESP_OFFSET (MCONTEXT_GREGS_OFFSET + 7*4) -#define MCONTEXT_EBX_OFFSET (MCONTEXT_GREGS_OFFSET + 8*4) -#define MCONTEXT_EDX_OFFSET (MCONTEXT_GREGS_OFFSET + 9*4) -#define MCONTEXT_ECX_OFFSET (MCONTEXT_GREGS_OFFSET + 10*4) -#define MCONTEXT_EAX_OFFSET (MCONTEXT_GREGS_OFFSET + 11*4) -#define MCONTEXT_TRAPNO_OFFSET (MCONTEXT_GREGS_OFFSET + 12*4) -#define MCONTEXT_ERR_OFFSET (MCONTEXT_GREGS_OFFSET + 13*4) -#define MCONTEXT_EIP_OFFSET (MCONTEXT_GREGS_OFFSET + 14*4) -#define MCONTEXT_CS_OFFSET (MCONTEXT_GREGS_OFFSET + 15*4) -#define MCONTEXT_EFL_OFFSET (MCONTEXT_GREGS_OFFSET + 16*4) -#define MCONTEXT_UESP_OFFSET (MCONTEXT_GREGS_OFFSET + 17*4) -#define MCONTEXT_SS_OFFSET (MCONTEXT_GREGS_OFFSET + 18*4) - -#define UCONTEXT_SIGMASK_OFFSET 108 - -#define UCONTEXT_FPREGS_OFFSET 96 -#define UCONTEXT_FPREGS_MEM_OFFSET 116 - -#elif defined(__mips__) - -#if _MIPS_SIM == _ABIO32 -#define MCONTEXT_PC_OFFSET 32 -#define MCONTEXT_GREGS_OFFSET 40 -#define MCONTEXT_FPREGS_OFFSET 296 -#define MCONTEXT_FPC_CSR 556 -#define UCONTEXT_SIGMASK_OFFSET 616 -#else -#define MCONTEXT_GREGS_OFFSET 40 -#define MCONTEXT_FPREGS_OFFSET 296 -#define MCONTEXT_PC_OFFSET 616 -#define MCONTEXT_FPC_CSR 624 -#define UCONTEXT_SIGMASK_OFFSET 640 -#endif - -#elif defined(__x86_64__) - -#define MCONTEXT_GREGS_OFFSET 40 -#define UCONTEXT_SIGMASK_OFFSET 296 - -#define MCONTEXT_GREGS_R8 40 -#define MCONTEXT_GREGS_R9 48 -#define MCONTEXT_GREGS_R10 56 -#define MCONTEXT_GREGS_R11 64 -#define MCONTEXT_GREGS_R12 72 -#define MCONTEXT_GREGS_R13 80 -#define MCONTEXT_GREGS_R14 88 -#define MCONTEXT_GREGS_R15 96 -#define MCONTEXT_GREGS_RDI 104 -#define MCONTEXT_GREGS_RSI 112 -#define MCONTEXT_GREGS_RBP 120 -#define MCONTEXT_GREGS_RBX 128 -#define MCONTEXT_GREGS_RDX 136 -#define MCONTEXT_GREGS_RAX 144 -#define MCONTEXT_GREGS_RCX 152 -#define MCONTEXT_GREGS_RSP 160 -#define MCONTEXT_GREGS_RIP 168 -#define MCONTEXT_FPREGS_PTR 224 -#define MCONTEXT_FPREGS_MEM 304 -#define FPREGS_OFFSET_MXCSR 24 - -#else -#error "This header has not been ported for your CPU" -#endif - -#endif // GOOGLEBREAKPAD_COMMON_ANDROID_UCONTEXT_CONSTANTS_H diff --git a/sources/google-breakpad/src/common/basictypes.h b/sources/google-breakpad/src/common/basictypes.h deleted file mode 100644 index 9426c1f6..00000000 --- a/sources/google-breakpad/src/common/basictypes.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) 2011 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_BASICTYPES_H_ -#define COMMON_BASICTYPES_H_ - -// A macro to disallow the copy constructor and operator= functions -// This should be used in the private: declarations for a class -#ifndef DISALLOW_COPY_AND_ASSIGN -#define DISALLOW_COPY_AND_ASSIGN(TypeName) \ - TypeName(const TypeName&); \ - void operator=(const TypeName&) -#endif // DISALLOW_COPY_AND_ASSIGN - -namespace google_breakpad { - -// Used to explicitly mark the return value of a function as unused. If you are -// really sure you don't want to do anything with the return value of a function -// that has been marked with __attribute__((warn_unused_result)), wrap it with -// this. Example: -// -// scoped_ptr my_var = ...; -// if (TakeOwnership(my_var.get()) == SUCCESS) -// ignore_result(my_var.release()); -// -template -inline void ignore_result(const T&) { -} - -} // namespace google_breakpad - -#endif // COMMON_BASICTYPES_H_ diff --git a/sources/google-breakpad/src/common/byte_cursor.h b/sources/google-breakpad/src/common/byte_cursor.h deleted file mode 100644 index accd54e0..00000000 --- a/sources/google-breakpad/src/common/byte_cursor.h +++ /dev/null @@ -1,265 +0,0 @@ -// -*- mode: c++ -*- - -// Copyright (c) 2010, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Original author: Jim Blandy - -// byte_cursor.h: Classes for parsing values from a buffer of bytes. -// The ByteCursor class provides a convenient interface for reading -// fixed-size integers of arbitrary endianness, being thorough about -// checking for buffer overruns. - -#ifndef COMMON_BYTE_CURSOR_H_ -#define COMMON_BYTE_CURSOR_H_ - -#include -#include -#include -#include -#include - -#include "common/using_std_string.h" - -namespace google_breakpad { - -// A buffer holding a series of bytes. -struct ByteBuffer { - ByteBuffer() : start(0), end(0) { } - ByteBuffer(const uint8_t *set_start, size_t set_size) - : start(set_start), end(set_start + set_size) { } - ~ByteBuffer() { }; - - // Equality operators. Useful in unit tests, and when we're using - // ByteBuffers to refer to regions of a larger buffer. - bool operator==(const ByteBuffer &that) const { - return start == that.start && end == that.end; - } - bool operator!=(const ByteBuffer &that) const { - return start != that.start || end != that.end; - } - - // Not C++ style guide compliant, but this definitely belongs here. - size_t Size() const { - assert(start <= end); - return end - start; - } - - const uint8_t *start, *end; -}; - -// A cursor pointing into a ByteBuffer that can parse numbers of various -// widths and representations, strings, and data blocks, advancing through -// the buffer as it goes. All ByteCursor operations check that accesses -// haven't gone beyond the end of the enclosing ByteBuffer. -class ByteCursor { - public: - // Create a cursor reading bytes from the start of BUFFER. By default, the - // cursor reads multi-byte values in little-endian form. - ByteCursor(const ByteBuffer *buffer, bool big_endian = false) - : buffer_(buffer), here_(buffer->start), - big_endian_(big_endian), complete_(true) { } - - // Accessor and setter for this cursor's endianness flag. - bool big_endian() const { return big_endian_; } - void set_big_endian(bool big_endian) { big_endian_ = big_endian; } - - // Accessor and setter for this cursor's current position. The setter - // returns a reference to this cursor. - const uint8_t *here() const { return here_; } - ByteCursor &set_here(const uint8_t *here) { - assert(buffer_->start <= here && here <= buffer_->end); - here_ = here; - return *this; - } - - // Return the number of bytes available to read at the cursor. - size_t Available() const { return size_t(buffer_->end - here_); } - - // Return true if this cursor is at the end of its buffer. - bool AtEnd() const { return Available() == 0; } - - // When used as a boolean value this cursor converts to true if all - // prior reads have been completed, or false if we ran off the end - // of the buffer. - operator bool() const { return complete_; } - - // Read a SIZE-byte integer at this cursor, signed if IS_SIGNED is true, - // unsigned otherwise, using the cursor's established endianness, and set - // *RESULT to the number. If we read off the end of our buffer, clear - // this cursor's complete_ flag, and store a dummy value in *RESULT. - // Return a reference to this cursor. - template - ByteCursor &Read(size_t size, bool is_signed, T *result) { - if (CheckAvailable(size)) { - T v = 0; - if (big_endian_) { - for (size_t i = 0; i < size; i++) - v = (v << 8) + here_[i]; - } else { - // This loop condition looks weird, but size_t is unsigned, so - // decrementing i after it is zero yields the largest size_t value. - for (size_t i = size - 1; i < size; i--) - v = (v << 8) + here_[i]; - } - if (is_signed && size < sizeof(T)) { - size_t sign_bit = (T)1 << (size * 8 - 1); - v = (v ^ sign_bit) - sign_bit; - } - here_ += size; - *result = v; - } else { - *result = (T) 0xdeadbeef; - } - return *this; - } - - // Read an integer, using the cursor's established endianness and - // *RESULT's size and signedness, and set *RESULT to the number. If we - // read off the end of our buffer, clear this cursor's complete_ flag. - // Return a reference to this cursor. - template - ByteCursor &operator>>(T &result) { - bool T_is_signed = (T)-1 < 0; - return Read(sizeof(T), T_is_signed, &result); - } - - // Copy the SIZE bytes at the cursor to BUFFER, and advance this - // cursor to the end of them. If we read off the end of our buffer, - // clear this cursor's complete_ flag, and set *POINTER to NULL. - // Return a reference to this cursor. - ByteCursor &Read(uint8_t *buffer, size_t size) { - if (CheckAvailable(size)) { - memcpy(buffer, here_, size); - here_ += size; - } - return *this; - } - - // Set STR to a copy of the '\0'-terminated string at the cursor. If the - // byte buffer does not contain a terminating zero, clear this cursor's - // complete_ flag, and set STR to the empty string. Return a reference to - // this cursor. - ByteCursor &CString(string *str) { - const uint8_t *end - = static_cast(memchr(here_, '\0', Available())); - if (end) { - str->assign(reinterpret_cast(here_), end - here_); - here_ = end + 1; - } else { - str->clear(); - here_ = buffer_->end; - complete_ = false; - } - return *this; - } - - // Like CString(STR), but extract the string from a fixed-width buffer - // LIMIT bytes long, which may or may not contain a terminating '\0' - // byte. Specifically: - // - // - If there are not LIMIT bytes available at the cursor, clear the - // cursor's complete_ flag and set STR to the empty string. - // - // - Otherwise, if the LIMIT bytes at the cursor contain any '\0' - // characters, set *STR to a copy of the bytes before the first '\0', - // and advance the cursor by LIMIT bytes. - // - // - Otherwise, set *STR to a copy of those LIMIT bytes, and advance the - // cursor by LIMIT bytes. - ByteCursor &CString(string *str, size_t limit) { - if (CheckAvailable(limit)) { - const uint8_t *end - = static_cast(memchr(here_, '\0', limit)); - if (end) - str->assign(reinterpret_cast(here_), end - here_); - else - str->assign(reinterpret_cast(here_), limit); - here_ += limit; - } else { - str->clear(); - } - return *this; - } - - // Set *POINTER to point to the SIZE bytes at the cursor, and advance - // this cursor to the end of them. If SIZE is omitted, don't move the - // cursor. If we read off the end of our buffer, clear this cursor's - // complete_ flag, and set *POINTER to NULL. Return a reference to this - // cursor. - ByteCursor &PointTo(const uint8_t **pointer, size_t size = 0) { - if (CheckAvailable(size)) { - *pointer = here_; - here_ += size; - } else { - *pointer = NULL; - } - return *this; - } - - // Skip SIZE bytes at the cursor. If doing so would advance us off - // the end of our buffer, clear this cursor's complete_ flag, and - // set *POINTER to NULL. Return a reference to this cursor. - ByteCursor &Skip(size_t size) { - if (CheckAvailable(size)) - here_ += size; - return *this; - } - - private: - // If there are at least SIZE bytes available to read from the buffer, - // return true. Otherwise, set here_ to the end of the buffer, set - // complete_ to false, and return false. - bool CheckAvailable(size_t size) { - if (Available() >= size) { - return true; - } else { - here_ = buffer_->end; - complete_ = false; - return false; - } - } - - // The buffer we're reading bytes from. - const ByteBuffer *buffer_; - - // The next byte within buffer_ that we'll read. - const uint8_t *here_; - - // True if we should read numbers in big-endian form; false if we - // should read in little-endian form. - bool big_endian_; - - // True if we've been able to read all we've been asked to. - bool complete_; -}; - -} // namespace google_breakpad - -#endif // COMMON_BYTE_CURSOR_H_ diff --git a/sources/google-breakpad/src/common/convert_UTF.c b/sources/google-breakpad/src/common/convert_UTF.c deleted file mode 100644 index 12a3c891..00000000 --- a/sources/google-breakpad/src/common/convert_UTF.c +++ /dev/null @@ -1,554 +0,0 @@ -/* - * Copyright © 1991-2015 Unicode, Inc. All rights reserved. - * Distributed under the Terms of Use in - * http://www.unicode.org/copyright.html. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of the Unicode data files and any associated documentation - * (the "Data Files") or Unicode software and any associated documentation - * (the "Software") to deal in the Data Files or Software - * without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, and/or sell copies of - * the Data Files or Software, and to permit persons to whom the Data Files - * or Software are furnished to do so, provided that - * (a) this copyright and permission notice appear with all copies - * of the Data Files or Software, - * (b) this copyright and permission notice appear in associated - * documentation, and - * (c) there is clear notice in each modified Data File or in the Software - * as well as in the documentation associated with the Data File(s) or - * Software that the data or software has been modified. - * - * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF - * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT OF THIRD PARTY RIGHTS. - * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS - * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL - * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THE DATA FILES OR SOFTWARE. - * - * Except as contained in this notice, the name of a copyright holder - * shall not be used in advertising or otherwise to promote the sale, - * use or other dealings in these Data Files or Software without prior - * written authorization of the copyright holder. - */ - -/* --------------------------------------------------------------------- - -Conversions between UTF32, UTF-16, and UTF-8. Source code file. -Author: Mark E. Davis, 1994. -Rev History: Rick McGowan, fixes & updates May 2001. -Sept 2001: fixed const & error conditions per -mods suggested by S. Parent & A. Lillich. -June 2002: Tim Dodd added detection and handling of incomplete -source sequences, enhanced error detection, added casts -to eliminate compiler warnings. -July 2003: slight mods to back out aggressive FFFE detection. -Jan 2004: updated switches in from-UTF8 conversions. -Oct 2004: updated to use UNI_MAX_LEGAL_UTF32 in UTF-32 conversions. - -See the header file "ConvertUTF.h" for complete documentation. - ------------------------------------------------------------------------- */ - - -#include "convert_UTF.h" -#ifdef CVTUTF_DEBUG -#include -#endif - -static const int halfShift = 10; /* used for shifting by 10 bits */ - -static const UTF32 halfBase = 0x0010000UL; -static const UTF32 halfMask = 0x3FFUL; - -#define UNI_SUR_HIGH_START (UTF32)0xD800 -#define UNI_SUR_HIGH_END (UTF32)0xDBFF -#define UNI_SUR_LOW_START (UTF32)0xDC00 -#define UNI_SUR_LOW_END (UTF32)0xDFFF - -#ifndef false -#define false 0 -#endif -#ifndef true -#define true 1 -#endif - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF32toUTF16 (const UTF32** sourceStart, const UTF32* sourceEnd, - UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF32* source = *sourceStart; - UTF16* target = *targetStart; - while (source < sourceEnd) { - UTF32 ch; - if (target >= targetEnd) { - result = targetExhausted; break; - } - ch = *source++; - if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */ - /* UTF-16 surrogate values are illegal in UTF-32; 0xffff or 0xfffe are both reserved values */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) { - if (flags == strictConversion) { - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } else { - *target++ = UNI_REPLACEMENT_CHAR; - } - } else { - *target++ = (UTF16)ch; /* normal case */ - } - } else if (ch > UNI_MAX_LEGAL_UTF32) { - if (flags == strictConversion) { - result = sourceIllegal; - } else { - *target++ = UNI_REPLACEMENT_CHAR; - } - } else { - /* target is a character in range 0xFFFF - 0x10FFFF. */ - if (target + 1 >= targetEnd) { - --source; /* Back up source pointer! */ - result = targetExhausted; break; - } - ch -= halfBase; - *target++ = (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START); - *target++ = (UTF16)((ch & halfMask) + UNI_SUR_LOW_START); - } - } -*sourceStart = source; -*targetStart = target; -return result; -} - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF16toUTF32 (const UTF16** sourceStart, const UTF16* sourceEnd, - UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF16* source = *sourceStart; - UTF32* target = *targetStart; - UTF32 ch, ch2; - while (source < sourceEnd) { - const UTF16* oldSource = source; /* In case we have to back up because of target overflow. */ - ch = *source++; - /* If we have a surrogate pair, convert to UTF32 first. */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END) { - /* If the 16 bits following the high surrogate are in the source buffer... */ - if (source < sourceEnd) { - ch2 = *source; - /* If it's a low surrogate, convert to UTF32. */ - if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) { - ch = ((ch - UNI_SUR_HIGH_START) << halfShift) - + (ch2 - UNI_SUR_LOW_START) + halfBase; - ++source; - } else if (flags == strictConversion) { /* it's an unpaired high surrogate */ - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } - } else { /* We don't have the 16 bits following the high surrogate. */ - --source; /* return to the high surrogate */ - result = sourceExhausted; - break; - } - } else if (flags == strictConversion) { - /* UTF-16 surrogate values are illegal in UTF-32 */ - if (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END) { - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } - } - if (target >= targetEnd) { - source = oldSource; /* Back up source pointer! */ - result = targetExhausted; break; - } - *target++ = ch; - } - *sourceStart = source; - *targetStart = target; -#ifdef CVTUTF_DEBUG - if (result == sourceIllegal) { - fprintf(stderr, "ConvertUTF16toUTF32 illegal seq 0x%04x,%04x\n", ch, ch2); - fflush(stderr); - } -#endif - return result; -} - -/* --------------------------------------------------------------------- */ - -/* - * Index into the table below with the first byte of a UTF-8 sequence to - * get the number of trailing bytes that are supposed to follow it. - * Note that *legal* UTF-8 values can't have 4 or 5-bytes. The table is - * left as-is for anyone who may want to do such conversion, which was - * allowed in earlier algorithms. - */ -static const char trailingBytesForUTF8[256] = { - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 -}; - -/* - * Magic values subtracted from a buffer value during UTF8 conversion. - * This table contains as many values as there might be trailing bytes - * in a UTF-8 sequence. - */ -static const UTF32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL, - 0x03C82080UL, 0xFA082080UL, 0x82082080UL }; - -/* - * Once the bits are split out into bytes of UTF-8, this is a mask OR-ed - * into the first byte, depending on how many bytes follow. There are - * as many entries in this table as there are UTF-8 sequence types. - * (I.e., one byte sequence, two byte... etc.). Remember that sequencs - * for *legal* UTF-8 will be 4 or fewer bytes total. - */ -static const UTF8 firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; - -/* --------------------------------------------------------------------- */ - -/* The interface converts a whole buffer to avoid function-call overhead. -* Constants have been gathered. Loops & conditionals have been removed as -* much as possible for efficiency, in favor of drop-through switches. -* (See "Note A" at the bottom of the file for equivalent code.) -* If your compiler supports it, the "isLegalUTF8" call can be turned -* into an inline function. -*/ - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF16toUTF8 (const UTF16** sourceStart, const UTF16* sourceEnd, - UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF16* source = *sourceStart; - UTF8* target = *targetStart; - while (source < sourceEnd) { - UTF32 ch; - unsigned short bytesToWrite = 0; - const UTF32 byteMask = 0xBF; - const UTF32 byteMark = 0x80; - const UTF16* oldSource = source; /* In case we have to back up because of target overflow. */ - ch = *source++; - /* If we have a surrogate pair, convert to UTF32 first. */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_HIGH_END) { - /* If the 16 bits following the high surrogate are in the source buffer... */ - if (source < sourceEnd) { - UTF32 ch2 = *source; - /* If it's a low surrogate, convert to UTF32. */ - if (ch2 >= UNI_SUR_LOW_START && ch2 <= UNI_SUR_LOW_END) { - ch = ((ch - UNI_SUR_HIGH_START) << halfShift) - + (ch2 - UNI_SUR_LOW_START) + halfBase; - ++source; - } else if (flags == strictConversion) { /* it's an unpaired high surrogate */ - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } - } else { /* We don't have the 16 bits following the high surrogate. */ - --source; /* return to the high surrogate */ - result = sourceExhausted; - break; - } - } else if (flags == strictConversion) { - /* UTF-16 surrogate values are illegal in UTF-32 */ - if (ch >= UNI_SUR_LOW_START && ch <= UNI_SUR_LOW_END) { - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } - } - /* Figure out how many bytes the result will require */ - if (ch < (UTF32)0x80) { bytesToWrite = 1; - } else if (ch < (UTF32)0x800) { bytesToWrite = 2; - } else if (ch < (UTF32)0x10000) { bytesToWrite = 3; - } else if (ch < (UTF32)0x110000) { bytesToWrite = 4; - } else { bytesToWrite = 3; - ch = UNI_REPLACEMENT_CHAR; - } - - target += bytesToWrite; - if (target > targetEnd) { - source = oldSource; /* Back up source pointer! */ - target -= bytesToWrite; result = targetExhausted; break; - } - switch (bytesToWrite) { /* note: everything falls through. */ - case 4: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 3: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 2: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 1: *--target = (UTF8)(ch | firstByteMark[bytesToWrite]); - } - target += bytesToWrite; - } -*sourceStart = source; -*targetStart = target; -return result; -} - -/* --------------------------------------------------------------------- */ - -/* - * Utility routine to tell whether a sequence of bytes is legal UTF-8. - * This must be called with the length pre-determined by the first byte. - * If not calling this from ConvertUTF8to*, then the length can be set by: - * length = trailingBytesForUTF8[*source]+1; - * and the sequence is illegal right away if there aren't that many bytes - * available. - * If presented with a length > 4, this returns false. The Unicode - * definition of UTF-8 goes up to 4-byte sequences. - */ - -static Boolean isLegalUTF8(const UTF8 *source, int length) { - UTF8 a; - const UTF8 *srcptr = source+length; - switch (length) { - default: return false; - /* Everything else falls through when "true"... */ - case 4: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false; - case 3: if ((a = (*--srcptr)) < 0x80 || a > 0xBF) return false; - case 2: if ((a = (*--srcptr)) > 0xBF) return false; - - switch (*source) { - /* no fall-through in this inner switch */ - case 0xE0: if (a < 0xA0) return false; break; - case 0xED: if (a > 0x9F) return false; break; - case 0xF0: if (a < 0x90) return false; break; - case 0xF4: if (a > 0x8F) return false; break; - default: if (a < 0x80) return false; - } - - case 1: if (*source >= 0x80 && *source < 0xC2) return false; - } - if (*source > 0xF4) return false; - return true; -} - -/* --------------------------------------------------------------------- */ - -/* - * Exported function to return whether a UTF-8 sequence is legal or not. - * This is not used here; it's just exported. - */ -Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd) { - int length = trailingBytesForUTF8[*source]+1; - if (source+length > sourceEnd) { - return false; - } - return isLegalUTF8(source, length); -} - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF8toUTF16 (const UTF8** sourceStart, const UTF8* sourceEnd, - UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF8* source = *sourceStart; - UTF16* target = *targetStart; - while (source < sourceEnd) { - UTF32 ch = 0; - unsigned short extraBytesToRead = trailingBytesForUTF8[*source]; - if (source + extraBytesToRead >= sourceEnd) { - result = sourceExhausted; break; - } - /* Do this check whether lenient or strict */ - if (! isLegalUTF8(source, extraBytesToRead+1)) { - result = sourceIllegal; - break; - } - /* - * The cases all fall through. See "Note A" below. - */ - switch (extraBytesToRead) { - case 5: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */ - case 4: ch += *source++; ch <<= 6; /* remember, illegal UTF-8 */ - case 3: ch += *source++; ch <<= 6; - case 2: ch += *source++; ch <<= 6; - case 1: ch += *source++; ch <<= 6; - case 0: ch += *source++; - } - ch -= offsetsFromUTF8[extraBytesToRead]; - - if (target >= targetEnd) { - source -= (extraBytesToRead+1); /* Back up source pointer! */ - result = targetExhausted; break; - } - if (ch <= UNI_MAX_BMP) { /* Target is a character <= 0xFFFF */ - /* UTF-16 surrogate values are illegal in UTF-32 */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) { - if (flags == strictConversion) { - source -= (extraBytesToRead+1); /* return to the illegal value itself */ - result = sourceIllegal; - break; - } else { - *target++ = UNI_REPLACEMENT_CHAR; - } - } else { - *target++ = (UTF16)ch; /* normal case */ - } - } else if (ch > UNI_MAX_UTF16) { - if (flags == strictConversion) { - result = sourceIllegal; - source -= (extraBytesToRead+1); /* return to the start */ - break; /* Bail out; shouldn't continue */ - } else { - *target++ = UNI_REPLACEMENT_CHAR; - } - } else { - /* target is a character in range 0xFFFF - 0x10FFFF. */ - if (target + 1 >= targetEnd) { - source -= (extraBytesToRead+1); /* Back up source pointer! */ - result = targetExhausted; break; - } - ch -= halfBase; - *target++ = (UTF16)((ch >> halfShift) + UNI_SUR_HIGH_START); - *target++ = (UTF16)((ch & halfMask) + UNI_SUR_LOW_START); - } - } -*sourceStart = source; -*targetStart = target; -return result; -} - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF32toUTF8 (const UTF32** sourceStart, const UTF32* sourceEnd, - UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF32* source = *sourceStart; - UTF8* target = *targetStart; - while (source < sourceEnd) { - UTF32 ch; - unsigned short bytesToWrite = 0; - const UTF32 byteMask = 0xBF; - const UTF32 byteMark = 0x80; - ch = *source++; - if (flags == strictConversion ) { - /* UTF-16 surrogate values are illegal in UTF-32 */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) { - --source; /* return to the illegal value itself */ - result = sourceIllegal; - break; - } - } - /* - * Figure out how many bytes the result will require. Turn any - * illegally large UTF32 things (> Plane 17) into replacement chars. - */ - if (ch < (UTF32)0x80) { bytesToWrite = 1; - } else if (ch < (UTF32)0x800) { bytesToWrite = 2; - } else if (ch < (UTF32)0x10000) { bytesToWrite = 3; - } else if (ch <= UNI_MAX_LEGAL_UTF32) { bytesToWrite = 4; - } else { bytesToWrite = 3; - ch = UNI_REPLACEMENT_CHAR; - result = sourceIllegal; - } - - target += bytesToWrite; - if (target > targetEnd) { - --source; /* Back up source pointer! */ - target -= bytesToWrite; result = targetExhausted; break; - } - switch (bytesToWrite) { /* note: everything falls through. */ - case 4: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 3: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 2: *--target = (UTF8)((ch | byteMark) & byteMask); ch >>= 6; - case 1: *--target = (UTF8) (ch | firstByteMark[bytesToWrite]); - } - target += bytesToWrite; - } -*sourceStart = source; -*targetStart = target; -return result; -} - -/* --------------------------------------------------------------------- */ - -ConversionResult ConvertUTF8toUTF32 (const UTF8** sourceStart, const UTF8* sourceEnd, - UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags) { - ConversionResult result = conversionOK; - const UTF8* source = *sourceStart; - UTF32* target = *targetStart; - while (source < sourceEnd) { - UTF32 ch = 0; - unsigned short extraBytesToRead = trailingBytesForUTF8[*source]; - if (source + extraBytesToRead >= sourceEnd) { - result = sourceExhausted; break; - } - /* Do this check whether lenient or strict */ - if (! isLegalUTF8(source, extraBytesToRead+1)) { - result = sourceIllegal; - break; - } - /* - * The cases all fall through. See "Note A" below. - */ - switch (extraBytesToRead) { - case 5: ch += *source++; ch <<= 6; - case 4: ch += *source++; ch <<= 6; - case 3: ch += *source++; ch <<= 6; - case 2: ch += *source++; ch <<= 6; - case 1: ch += *source++; ch <<= 6; - case 0: ch += *source++; - } - ch -= offsetsFromUTF8[extraBytesToRead]; - - if (target >= targetEnd) { - source -= (extraBytesToRead+1); /* Back up the source pointer! */ - result = targetExhausted; break; - } - if (ch <= UNI_MAX_LEGAL_UTF32) { - /* - * UTF-16 surrogate values are illegal in UTF-32, and anything - * over Plane 17 (> 0x10FFFF) is illegal. - */ - if (ch >= UNI_SUR_HIGH_START && ch <= UNI_SUR_LOW_END) { - if (flags == strictConversion) { - source -= (extraBytesToRead+1); /* return to the illegal value itself */ - result = sourceIllegal; - break; - } else { - *target++ = UNI_REPLACEMENT_CHAR; - } - } else { - *target++ = ch; - } - } else { /* i.e., ch > UNI_MAX_LEGAL_UTF32 */ - result = sourceIllegal; - *target++ = UNI_REPLACEMENT_CHAR; - } - } - *sourceStart = source; - *targetStart = target; - return result; -} - -/* --------------------------------------------------------------------- - -Note A. -The fall-through switches in UTF-8 reading code save a -temp variable, some decrements & conditionals. The switches -are equivalent to the following loop: -{ - int tmpBytesToRead = extraBytesToRead+1; - do { - ch += *source++; - --tmpBytesToRead; - if (tmpBytesToRead) ch <<= 6; - } while (tmpBytesToRead > 0); -} -In UTF-8 writing code, the switches on "bytesToWrite" are -similarly unrolled loops. - ---------------------------------------------------------------------- */ diff --git a/sources/google-breakpad/src/common/convert_UTF.h b/sources/google-breakpad/src/common/convert_UTF.h deleted file mode 100644 index 644d0995..00000000 --- a/sources/google-breakpad/src/common/convert_UTF.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright © 1991-2015 Unicode, Inc. All rights reserved. - * Distributed under the Terms of Use in - * http://www.unicode.org/copyright.html. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of the Unicode data files and any associated documentation - * (the "Data Files") or Unicode software and any associated documentation - * (the "Software") to deal in the Data Files or Software - * without restriction, including without limitation the rights to use, - * copy, modify, merge, publish, distribute, and/or sell copies of - * the Data Files or Software, and to permit persons to whom the Data Files - * or Software are furnished to do so, provided that - * (a) this copyright and permission notice appear with all copies - * of the Data Files or Software, - * (b) this copyright and permission notice appear in associated - * documentation, and - * (c) there is clear notice in each modified Data File or in the Software - * as well as in the documentation associated with the Data File(s) or - * Software that the data or software has been modified. - * - * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF - * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE - * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT OF THIRD PARTY RIGHTS. - * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS - * NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL - * DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THE DATA FILES OR SOFTWARE. - * - * Except as contained in this notice, the name of a copyright holder - * shall not be used in advertising or otherwise to promote the sale, - * use or other dealings in these Data Files or Software without prior - * written authorization of the copyright holder. - */ - -#ifndef COMMON_CONVERT_UTF_H_ -#define COMMON_CONVERT_UTF_H_ - -/* --------------------------------------------------------------------- - -Conversions between UTF32, UTF-16, and UTF-8. Header file. - -Several funtions are included here, forming a complete set of -conversions between the three formats. UTF-7 is not included -here, but is handled in a separate source file. - -Each of these routines takes pointers to input buffers and output -buffers. The input buffers are const. - -Each routine converts the text between *sourceStart and sourceEnd, -putting the result into the buffer between *targetStart and -targetEnd. Note: the end pointers are *after* the last item: e.g. -*(sourceEnd - 1) is the last item. - -The return result indicates whether the conversion was successful, -and if not, whether the problem was in the source or target buffers. -(Only the first encountered problem is indicated.) - -After the conversion, *sourceStart and *targetStart are both -updated to point to the end of last text successfully converted in -the respective buffers. - -Input parameters: -sourceStart - pointer to a pointer to the source buffer. -The contents of this are modified on return so that -it points at the next thing to be converted. -targetStart - similarly, pointer to pointer to the target buffer. -sourceEnd, targetEnd - respectively pointers to the ends of the -two buffers, for overflow checking only. - -These conversion functions take a ConversionFlags argument. When this -flag is set to strict, both irregular sequences and isolated surrogates -will cause an error. When the flag is set to lenient, both irregular -sequences and isolated surrogates are converted. - -Whether the flag is strict or lenient, all illegal sequences will cause -an error return. This includes sequences such as: , , -or in UTF-8, and values above 0x10FFFF in UTF-32. Conformant code -must check for illegal sequences. - -When the flag is set to lenient, characters over 0x10FFFF are converted -to the replacement character; otherwise (when the flag is set to strict) -they constitute an error. - -Output parameters: -The value "sourceIllegal" is returned from some routines if the input -sequence is malformed. When "sourceIllegal" is returned, the source -value will point to the illegal value that caused the problem. E.g., -in UTF-8 when a sequence is malformed, it points to the start of the -malformed sequence. - -Author: Mark E. Davis, 1994. -Rev History: Rick McGowan, fixes & updates May 2001. -Fixes & updates, Sept 2001. - ------------------------------------------------------------------------- */ - -/* --------------------------------------------------------------------- -The following 4 definitions are compiler-specific. -The C standard does not guarantee that wchar_t has at least -16 bits, so wchar_t is no less portable than unsigned short! -All should be unsigned values to avoid sign extension during -bit mask & shift operations. ------------------------------------------------------------------------- */ - -typedef unsigned long UTF32; /* at least 32 bits */ -typedef unsigned short UTF16; /* at least 16 bits */ -typedef unsigned char UTF8; /* typically 8 bits */ -typedef unsigned char Boolean; /* 0 or 1 */ - -/* Some fundamental constants */ -#define UNI_REPLACEMENT_CHAR (UTF32)0x0000FFFD -#define UNI_MAX_BMP (UTF32)0x0000FFFF -#define UNI_MAX_UTF16 (UTF32)0x0010FFFF -#define UNI_MAX_UTF32 (UTF32)0x7FFFFFFF -#define UNI_MAX_LEGAL_UTF32 (UTF32)0x0010FFFF - -typedef enum { - conversionOK, /* conversion successful */ - sourceExhausted, /* partial character in source, but hit end */ - targetExhausted, /* insuff. room in target for conversion */ - sourceIllegal /* source sequence is illegal/malformed */ -} ConversionResult; - -typedef enum { - strictConversion = 0, - lenientConversion -} ConversionFlags; - -/* This is for C++ and does no harm in C */ -#ifdef __cplusplus -extern "C" { -#endif - -ConversionResult ConvertUTF8toUTF16 (const UTF8** sourceStart, const UTF8* sourceEnd, - UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags); - -ConversionResult ConvertUTF16toUTF8 (const UTF16** sourceStart, const UTF16* sourceEnd, - UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags); - -ConversionResult ConvertUTF8toUTF32 (const UTF8** sourceStart, const UTF8* sourceEnd, - UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags); - -ConversionResult ConvertUTF32toUTF8 (const UTF32** sourceStart, const UTF32* sourceEnd, - UTF8** targetStart, UTF8* targetEnd, ConversionFlags flags); - -ConversionResult ConvertUTF16toUTF32 (const UTF16** sourceStart, const UTF16* sourceEnd, - UTF32** targetStart, UTF32* targetEnd, ConversionFlags flags); - -ConversionResult ConvertUTF32toUTF16 (const UTF32** sourceStart, const UTF32* sourceEnd, - UTF16** targetStart, UTF16* targetEnd, ConversionFlags flags); - -Boolean isLegalUTF8Sequence(const UTF8 *source, const UTF8 *sourceEnd); - -#ifdef __cplusplus -} -#endif - -/* --------------------------------------------------------------------- */ - -#endif // COMMON_CONVERT_UTF_H_ diff --git a/sources/google-breakpad/src/common/linux/eintr_wrapper.h b/sources/google-breakpad/src/common/linux/eintr_wrapper.h deleted file mode 100644 index 3f1d1848..00000000 --- a/sources/google-breakpad/src/common/linux/eintr_wrapper.h +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_LINUX_EINTR_WRAPPER_H_ -#define COMMON_LINUX_EINTR_WRAPPER_H_ - -#include - -// This provides a wrapper around system calls which may be interrupted by a -// signal and return EINTR. See man 7 signal. -// - -#define HANDLE_EINTR(x) ({ \ - __typeof__(x) eintr_wrapper_result; \ - do { \ - eintr_wrapper_result = (x); \ - } while (eintr_wrapper_result == -1 && errno == EINTR); \ - eintr_wrapper_result; \ -}) - -#define IGNORE_EINTR(x) ({ \ - __typeof__(x) eintr_wrapper_result; \ - do { \ - eintr_wrapper_result = (x); \ - if (eintr_wrapper_result == -1 && errno == EINTR) { \ - eintr_wrapper_result = 0; \ - } \ - } while (0); \ - eintr_wrapper_result; \ -}) - -#endif // COMMON_LINUX_EINTR_WRAPPER_H_ diff --git a/sources/google-breakpad/src/common/linux/elf_core_dump.cc b/sources/google-breakpad/src/common/linux/elf_core_dump.cc deleted file mode 100644 index 0e7db7b1..00000000 --- a/sources/google-breakpad/src/common/linux/elf_core_dump.cc +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// elf_core_dump.cc: Implement google_breakpad::ElfCoreDump. -// See elf_core_dump.h for details. - -#include "common/linux/elf_core_dump.h" - -#include -#include - -namespace google_breakpad { - -// Implementation of ElfCoreDump::Note. - -ElfCoreDump::Note::Note() {} - -ElfCoreDump::Note::Note(const MemoryRange& content) : content_(content) {} - -bool ElfCoreDump::Note::IsValid() const { - return GetHeader() != NULL; -} - -const ElfCoreDump::Nhdr* ElfCoreDump::Note::GetHeader() const { - return content_.GetData(0); -} - -ElfCoreDump::Word ElfCoreDump::Note::GetType() const { - const Nhdr* header = GetHeader(); - // 0 is not being used as a NOTE type. - return header ? header->n_type : 0; -} - -MemoryRange ElfCoreDump::Note::GetName() const { - const Nhdr* header = GetHeader(); - if (header) { - return content_.Subrange(sizeof(Nhdr), header->n_namesz); - } - return MemoryRange(); -} - -MemoryRange ElfCoreDump::Note::GetDescription() const { - const Nhdr* header = GetHeader(); - if (header) { - return content_.Subrange(AlignedSize(sizeof(Nhdr) + header->n_namesz), - header->n_descsz); - } - return MemoryRange(); -} - -ElfCoreDump::Note ElfCoreDump::Note::GetNextNote() const { - MemoryRange next_content; - const Nhdr* header = GetHeader(); - if (header) { - size_t next_offset = AlignedSize(sizeof(Nhdr) + header->n_namesz); - next_offset = AlignedSize(next_offset + header->n_descsz); - next_content = - content_.Subrange(next_offset, content_.length() - next_offset); - } - return Note(next_content); -} - -// static -size_t ElfCoreDump::Note::AlignedSize(size_t size) { - size_t mask = sizeof(Word) - 1; - return (size + mask) & ~mask; -} - - -// Implementation of ElfCoreDump. - -ElfCoreDump::ElfCoreDump() {} - -ElfCoreDump::ElfCoreDump(const MemoryRange& content) - : content_(content) { -} - -void ElfCoreDump::SetContent(const MemoryRange& content) { - content_ = content; -} - -bool ElfCoreDump::IsValid() const { - const Ehdr* header = GetHeader(); - return (header && - header->e_ident[0] == ELFMAG0 && - header->e_ident[1] == ELFMAG1 && - header->e_ident[2] == ELFMAG2 && - header->e_ident[3] == ELFMAG3 && - header->e_ident[4] == kClass && - header->e_version == EV_CURRENT && - header->e_type == ET_CORE); -} - -const ElfCoreDump::Ehdr* ElfCoreDump::GetHeader() const { - return content_.GetData(0); -} - -const ElfCoreDump::Phdr* ElfCoreDump::GetProgramHeader(unsigned index) const { - const Ehdr* header = GetHeader(); - if (header) { - return reinterpret_cast(content_.GetArrayElement( - header->e_phoff, header->e_phentsize, index)); - } - return NULL; -} - -const ElfCoreDump::Phdr* ElfCoreDump::GetFirstProgramHeaderOfType( - Word type) const { - for (unsigned i = 0, n = GetProgramHeaderCount(); i < n; ++i) { - const Phdr* program = GetProgramHeader(i); - if (program->p_type == type) { - return program; - } - } - return NULL; -} - -unsigned ElfCoreDump::GetProgramHeaderCount() const { - const Ehdr* header = GetHeader(); - return header ? header->e_phnum : 0; -} - -bool ElfCoreDump::CopyData(void* buffer, Addr virtual_address, size_t length) { - for (unsigned i = 0, n = GetProgramHeaderCount(); i < n; ++i) { - const Phdr* program = GetProgramHeader(i); - if (program->p_type != PT_LOAD) - continue; - - size_t offset_in_segment = virtual_address - program->p_vaddr; - if (virtual_address >= program->p_vaddr && - offset_in_segment < program->p_filesz) { - const void* data = - content_.GetData(program->p_offset + offset_in_segment, length); - if (data) { - memcpy(buffer, data, length); - return true; - } - } - } - return false; -} - -ElfCoreDump::Note ElfCoreDump::GetFirstNote() const { - MemoryRange note_content; - const Phdr* program_header = GetFirstProgramHeaderOfType(PT_NOTE); - if (program_header) { - note_content = content_.Subrange(program_header->p_offset, - program_header->p_filesz); - } - return Note(note_content); -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/linux/elf_core_dump.h b/sources/google-breakpad/src/common/linux/elf_core_dump.h deleted file mode 100644 index d03c7a88..00000000 --- a/sources/google-breakpad/src/common/linux/elf_core_dump.h +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// elf_core_dump.h: Define the google_breakpad::ElfCoreDump class, which -// encapsulates an ELF core dump file mapped into memory. - -#ifndef COMMON_LINUX_ELF_CORE_DUMP_H_ -#define COMMON_LINUX_ELF_CORE_DUMP_H_ - -#include -#include -#include - -#include "common/memory_range.h" - -namespace google_breakpad { - -// A class encapsulating an ELF core dump file mapped into memory, which -// provides methods for accessing program headers and the note section. -class ElfCoreDump { - public: - // ELF types based on the value of __WORDSIZE. - typedef ElfW(Ehdr) Ehdr; - typedef ElfW(Nhdr) Nhdr; - typedef ElfW(Phdr) Phdr; - typedef ElfW(Word) Word; - typedef ElfW(Addr) Addr; -#if __WORDSIZE == 32 - static const int kClass = ELFCLASS32; -#elif __WORDSIZE == 64 - static const int kClass = ELFCLASS64; -#else -#error "Unsupported __WORDSIZE for ElfCoreDump." -#endif - - // A class encapsulating the note content in a core dump, which provides - // methods for accessing the name and description of a note. - class Note { - public: - Note(); - - // Constructor that takes the note content from |content|. - explicit Note(const MemoryRange& content); - - // Returns true if this note is valid, i,e. a note header is found in - // |content_|, or false otherwise. - bool IsValid() const; - - // Returns the note header, or NULL if no note header is found in - // |content_|. - const Nhdr* GetHeader() const; - - // Returns the note type, or 0 if no note header is found in |content_|. - Word GetType() const; - - // Returns a memory range covering the note name, or an empty range - // if no valid note name is found in |content_|. - MemoryRange GetName() const; - - // Returns a memory range covering the note description, or an empty - // range if no valid note description is found in |content_|. - MemoryRange GetDescription() const; - - // Returns the note following this note, or an empty note if no valid - // note is found after this note. - Note GetNextNote() const; - - private: - // Returns the size in bytes round up to the word alignment, specified - // for the note section, of a given size in bytes. - static size_t AlignedSize(size_t size); - - // Note content. - MemoryRange content_; - }; - - ElfCoreDump(); - - // Constructor that takes the core dump content from |content|. - explicit ElfCoreDump(const MemoryRange& content); - - // Sets the core dump content to |content|. - void SetContent(const MemoryRange& content); - - // Returns true if a valid ELF header in the core dump, or false otherwise. - bool IsValid() const; - - // Returns the ELF header in the core dump, or NULL if no ELF header - // is found in |content_|. - const Ehdr* GetHeader() const; - - // Returns the |index|-th program header in the core dump, or NULL if no - // ELF header is found in |content_| or |index| is out of bounds. - const Phdr* GetProgramHeader(unsigned index) const; - - // Returns the first program header of |type| in the core dump, or NULL if - // no ELF header is found in |content_| or no program header of |type| is - // found. - const Phdr* GetFirstProgramHeaderOfType(Word type) const; - - // Returns the number of program headers in the core dump, or 0 if no - // ELF header is found in |content_|. - unsigned GetProgramHeaderCount() const; - - // Copies |length| bytes of data starting at |virtual_address| in the core - // dump to |buffer|. |buffer| should be a valid pointer to a buffer of at - // least |length| bytes. Returns true if the data to be copied is found in - // the core dump, or false otherwise. - bool CopyData(void* buffer, Addr virtual_address, size_t length); - - // Returns the first note found in the note section of the core dump, or - // an empty note if no note is found. - Note GetFirstNote() const; - - private: - // Core dump content. - MemoryRange content_; -}; - -} // namespace google_breakpad - -#endif // COMMON_LINUX_ELF_CORE_DUMP_H_ diff --git a/sources/google-breakpad/src/common/linux/elf_gnu_compat.h b/sources/google-breakpad/src/common/linux/elf_gnu_compat.h deleted file mode 100644 index f870cbc7..00000000 --- a/sources/google-breakpad/src/common/linux/elf_gnu_compat.h +++ /dev/null @@ -1,46 +0,0 @@ -// -*- mode: C++ -*- - -// Copyright (c) 2013, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Original author: Lei Zhang - -// elf_gnu_compat.h: #defines unique to glibc's elf.h. - -#ifndef COMMON_LINUX_ELF_GNU_COMPAT_H_ -#define COMMON_LINUX_ELF_GNU_COMPAT_H_ - -#include - -// A note type on GNU systems corresponding to the .note.gnu.build-id section. -#ifndef NT_GNU_BUILD_ID -#define NT_GNU_BUILD_ID 3 -#endif - -#endif // COMMON_LINUX_ELF_GNU_COMPAT_H_ diff --git a/sources/google-breakpad/src/common/linux/elfutils-inl.h b/sources/google-breakpad/src/common/linux/elfutils-inl.h deleted file mode 100644 index e56b37a9..00000000 --- a/sources/google-breakpad/src/common/linux/elfutils-inl.h +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_LINUX_ELFUTILS_INL_H__ -#define COMMON_LINUX_ELFUTILS_INL_H__ - -#include "common/linux/linux_libc_support.h" -#include "elfutils.h" - -namespace google_breakpad { - -template -const T* GetOffset(const typename ElfClass::Ehdr* elf_header, - typename ElfClass::Off offset) { - return reinterpret_cast(reinterpret_cast(elf_header) + - offset); -} - -template -const typename ElfClass::Shdr* FindElfSectionByName( - const char* name, - typename ElfClass::Word section_type, - const typename ElfClass::Shdr* sections, - const char* section_names, - const char* names_end, - int nsection) { - assert(name != NULL); - assert(sections != NULL); - assert(nsection > 0); - - int name_len = my_strlen(name); - if (name_len == 0) - return NULL; - - for (int i = 0; i < nsection; ++i) { - const char* section_name = section_names + sections[i].sh_name; - if (sections[i].sh_type == section_type && - names_end - section_name >= name_len + 1 && - my_strcmp(name, section_name) == 0) { - return sections + i; - } - } - return NULL; -} - -} // namespace google_breakpad - -#endif // COMMON_LINUX_ELFUTILS_INL_H__ diff --git a/sources/google-breakpad/src/common/linux/elfutils.cc b/sources/google-breakpad/src/common/linux/elfutils.cc deleted file mode 100644 index a79391c1..00000000 --- a/sources/google-breakpad/src/common/linux/elfutils.cc +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "common/linux/elfutils.h" - -#include -#include - -#include "common/linux/linux_libc_support.h" -#include "common/linux/elfutils-inl.h" - -namespace google_breakpad { - -namespace { - -template -void FindElfClassSection(const char *elf_base, - const char *section_name, - typename ElfClass::Word section_type, - const void **section_start, - size_t *section_size) { - typedef typename ElfClass::Ehdr Ehdr; - typedef typename ElfClass::Shdr Shdr; - - assert(elf_base); - assert(section_start); - assert(section_size); - - assert(my_strncmp(elf_base, ELFMAG, SELFMAG) == 0); - - const Ehdr* elf_header = reinterpret_cast(elf_base); - assert(elf_header->e_ident[EI_CLASS] == ElfClass::kClass); - - const Shdr* sections = - GetOffset(elf_header, elf_header->e_shoff); - const Shdr* section_names = sections + elf_header->e_shstrndx; - const char* names = - GetOffset(elf_header, section_names->sh_offset); - const char *names_end = names + section_names->sh_size; - - const Shdr* section = - FindElfSectionByName(section_name, section_type, - sections, names, names_end, - elf_header->e_shnum); - - if (section != NULL && section->sh_size > 0) { - *section_start = elf_base + section->sh_offset; - *section_size = section->sh_size; - } -} - -template -void FindElfClassSegment(const char *elf_base, - typename ElfClass::Word segment_type, - const void **segment_start, - size_t *segment_size) { - typedef typename ElfClass::Ehdr Ehdr; - typedef typename ElfClass::Phdr Phdr; - - assert(elf_base); - assert(segment_start); - assert(segment_size); - - assert(my_strncmp(elf_base, ELFMAG, SELFMAG) == 0); - - const Ehdr* elf_header = reinterpret_cast(elf_base); - assert(elf_header->e_ident[EI_CLASS] == ElfClass::kClass); - - const Phdr* phdrs = - GetOffset(elf_header, elf_header->e_phoff); - - for (int i = 0; i < elf_header->e_phnum; ++i) { - if (phdrs[i].p_type == segment_type) { - *segment_start = elf_base + phdrs[i].p_offset; - *segment_size = phdrs[i].p_filesz; - return; - } - } -} - -} // namespace - -bool IsValidElf(const void* elf_base) { - return my_strncmp(reinterpret_cast(elf_base), - ELFMAG, SELFMAG) == 0; -} - -int ElfClass(const void* elf_base) { - const ElfW(Ehdr)* elf_header = - reinterpret_cast(elf_base); - - return elf_header->e_ident[EI_CLASS]; -} - -bool FindElfSection(const void *elf_mapped_base, - const char *section_name, - uint32_t section_type, - const void **section_start, - size_t *section_size, - int *elfclass) { - assert(elf_mapped_base); - assert(section_start); - assert(section_size); - - *section_start = NULL; - *section_size = 0; - - if (!IsValidElf(elf_mapped_base)) - return false; - - int cls = ElfClass(elf_mapped_base); - if (elfclass) { - *elfclass = cls; - } - - const char* elf_base = - static_cast(elf_mapped_base); - - if (cls == ELFCLASS32) { - FindElfClassSection(elf_base, section_name, section_type, - section_start, section_size); - return *section_start != NULL; - } else if (cls == ELFCLASS64) { - FindElfClassSection(elf_base, section_name, section_type, - section_start, section_size); - return *section_start != NULL; - } - - return false; -} - -bool FindElfSegment(const void *elf_mapped_base, - uint32_t segment_type, - const void **segment_start, - size_t *segment_size, - int *elfclass) { - assert(elf_mapped_base); - assert(segment_start); - assert(segment_size); - - *segment_start = NULL; - *segment_size = 0; - - if (!IsValidElf(elf_mapped_base)) - return false; - - int cls = ElfClass(elf_mapped_base); - if (elfclass) { - *elfclass = cls; - } - - const char* elf_base = - static_cast(elf_mapped_base); - - if (cls == ELFCLASS32) { - FindElfClassSegment(elf_base, segment_type, - segment_start, segment_size); - return *segment_start != NULL; - } else if (cls == ELFCLASS64) { - FindElfClassSegment(elf_base, segment_type, - segment_start, segment_size); - return *segment_start != NULL; - } - - return false; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/linux/elfutils.h b/sources/google-breakpad/src/common/linux/elfutils.h deleted file mode 100644 index dccdc235..00000000 --- a/sources/google-breakpad/src/common/linux/elfutils.h +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. -// -// elfutils.h: Utilities for dealing with ELF files. -// - -#ifndef COMMON_LINUX_ELFUTILS_H_ -#define COMMON_LINUX_ELFUTILS_H_ - -#include -#include -#include - -namespace google_breakpad { - -// Traits classes so consumers can write templatized code to deal -// with specific ELF bits. -struct ElfClass32 { - typedef Elf32_Addr Addr; - typedef Elf32_Ehdr Ehdr; - typedef Elf32_Nhdr Nhdr; - typedef Elf32_Phdr Phdr; - typedef Elf32_Shdr Shdr; - typedef Elf32_Half Half; - typedef Elf32_Off Off; - typedef Elf32_Word Word; - static const int kClass = ELFCLASS32; - static const size_t kAddrSize = sizeof(Elf32_Addr); -}; - -struct ElfClass64 { - typedef Elf64_Addr Addr; - typedef Elf64_Ehdr Ehdr; - typedef Elf64_Nhdr Nhdr; - typedef Elf64_Phdr Phdr; - typedef Elf64_Shdr Shdr; - typedef Elf64_Half Half; - typedef Elf64_Off Off; - typedef Elf64_Word Word; - static const int kClass = ELFCLASS64; - static const size_t kAddrSize = sizeof(Elf64_Addr); -}; - -bool IsValidElf(const void* elf_header); -int ElfClass(const void* elf_base); - -// Attempt to find a section named |section_name| of type |section_type| -// in the ELF binary data at |elf_mapped_base|. On success, returns true -// and sets |*section_start| to point to the start of the section data, -// and |*section_size| to the size of the section's data. If |elfclass| -// is not NULL, set |*elfclass| to the ELF file class. -bool FindElfSection(const void *elf_mapped_base, - const char *section_name, - uint32_t section_type, - const void **section_start, - size_t *section_size, - int *elfclass); - -// Internal helper method, exposed for convenience for callers -// that already have more info. -template -const typename ElfClass::Shdr* -FindElfSectionByName(const char* name, - typename ElfClass::Word section_type, - const typename ElfClass::Shdr* sections, - const char* section_names, - const char* names_end, - int nsection); - -// Attempt to find the first segment of type |segment_type| in the ELF -// binary data at |elf_mapped_base|. On success, returns true and sets -// |*segment_start| to point to the start of the segment data, and -// and |*segment_size| to the size of the segment's data. If |elfclass| -// is not NULL, set |*elfclass| to the ELF file class. -bool FindElfSegment(const void *elf_mapped_base, - uint32_t segment_type, - const void **segment_start, - size_t *segment_size, - int *elfclass); - -// Convert an offset from an Elf header into a pointer to the mapped -// address in the current process. Takes an extra template parameter -// to specify the return type to avoid having to dynamic_cast the -// result. -template -const T* -GetOffset(const typename ElfClass::Ehdr* elf_header, - typename ElfClass::Off offset); - -} // namespace google_breakpad - -#endif // COMMON_LINUX_ELFUTILS_H_ diff --git a/sources/google-breakpad/src/common/linux/file_id.cc b/sources/google-breakpad/src/common/linux/file_id.cc deleted file mode 100644 index 00b37313..00000000 --- a/sources/google-breakpad/src/common/linux/file_id.cc +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. -// -// file_id.cc: Return a unique identifier for a file -// -// See file_id.h for documentation -// - -#include "common/linux/file_id.h" - -#include -#include -#include - -#include - -#include "common/linux/elf_gnu_compat.h" -#include "common/linux/elfutils.h" -#include "common/linux/linux_libc_support.h" -#include "common/linux/memory_mapped_file.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -FileID::FileID(const char* path) : path_(path) {} - -// ELF note name and desc are 32-bits word padded. -#define NOTE_PADDING(a) ((a + 3) & ~3) - -// These functions are also used inside the crashed process, so be safe -// and use the syscall/libc wrappers instead of direct syscalls or libc. - -template -static bool ElfClassBuildIDNoteIdentifier(const void *section, size_t length, - uint8_t identifier[kMDGUIDSize]) { - typedef typename ElfClass::Nhdr Nhdr; - - const void* section_end = reinterpret_cast(section) + length; - const Nhdr* note_header = reinterpret_cast(section); - while (reinterpret_cast(note_header) < section_end) { - if (note_header->n_type == NT_GNU_BUILD_ID) - break; - note_header = reinterpret_cast( - reinterpret_cast(note_header) + sizeof(Nhdr) + - NOTE_PADDING(note_header->n_namesz) + - NOTE_PADDING(note_header->n_descsz)); - } - if (reinterpret_cast(note_header) >= section_end || - note_header->n_descsz == 0) { - return false; - } - - const char* build_id = reinterpret_cast(note_header) + - sizeof(Nhdr) + NOTE_PADDING(note_header->n_namesz); - // Copy as many bits of the build ID as will fit - // into the GUID space. - my_memset(identifier, 0, kMDGUIDSize); - memcpy(identifier, build_id, - std::min(kMDGUIDSize, (size_t)note_header->n_descsz)); - - return true; -} - -// Attempt to locate a .note.gnu.build-id section in an ELF binary -// and copy as many bytes of it as will fit into |identifier|. -static bool FindElfBuildIDNote(const void *elf_mapped_base, - uint8_t identifier[kMDGUIDSize]) { - void* note_section; - size_t note_size; - int elfclass; - if ((!FindElfSegment(elf_mapped_base, PT_NOTE, - (const void**)¬e_section, ¬e_size, &elfclass) || - note_size == 0) && - (!FindElfSection(elf_mapped_base, ".note.gnu.build-id", SHT_NOTE, - (const void**)¬e_section, ¬e_size, &elfclass) || - note_size == 0)) { - return false; - } - - if (elfclass == ELFCLASS32) { - return ElfClassBuildIDNoteIdentifier(note_section, note_size, - identifier); - } else if (elfclass == ELFCLASS64) { - return ElfClassBuildIDNoteIdentifier(note_section, note_size, - identifier); - } - - return false; -} - -// Attempt to locate the .text section of an ELF binary and generate -// a simple hash by XORing the first page worth of bytes into |identifier|. -static bool HashElfTextSection(const void *elf_mapped_base, - uint8_t identifier[kMDGUIDSize]) { - void* text_section; - size_t text_size; - if (!FindElfSection(elf_mapped_base, ".text", SHT_PROGBITS, - (const void**)&text_section, &text_size, NULL) || - text_size == 0) { - return false; - } - - my_memset(identifier, 0, kMDGUIDSize); - const uint8_t* ptr = reinterpret_cast(text_section); - const uint8_t* ptr_end = ptr + std::min(text_size, static_cast(4096)); - while (ptr < ptr_end) { - for (unsigned i = 0; i < kMDGUIDSize; i++) - identifier[i] ^= ptr[i]; - ptr += kMDGUIDSize; - } - return true; -} - -// static -bool FileID::ElfFileIdentifierFromMappedFile(const void* base, - uint8_t identifier[kMDGUIDSize]) { - // Look for a build id note first. - if (FindElfBuildIDNote(base, identifier)) - return true; - - // Fall back on hashing the first page of the text section. - return HashElfTextSection(base, identifier); -} - -bool FileID::ElfFileIdentifier(uint8_t identifier[kMDGUIDSize]) { - MemoryMappedFile mapped_file(path_.c_str(), 0); - if (!mapped_file.data()) // Should probably check if size >= ElfW(Ehdr)? - return false; - - return ElfFileIdentifierFromMappedFile(mapped_file.data(), identifier); -} - -// static -void FileID::ConvertIdentifierToString(const uint8_t identifier[kMDGUIDSize], - char* buffer, int buffer_length) { - uint8_t identifier_swapped[kMDGUIDSize]; - - // Endian-ness swap to match dump processor expectation. - memcpy(identifier_swapped, identifier, kMDGUIDSize); - uint32_t* data1 = reinterpret_cast(identifier_swapped); - *data1 = htonl(*data1); - uint16_t* data2 = reinterpret_cast(identifier_swapped + 4); - *data2 = htons(*data2); - uint16_t* data3 = reinterpret_cast(identifier_swapped + 6); - *data3 = htons(*data3); - - int buffer_idx = 0; - for (unsigned int idx = 0; - (buffer_idx < buffer_length) && (idx < kMDGUIDSize); - ++idx) { - int hi = (identifier_swapped[idx] >> 4) & 0x0F; - int lo = (identifier_swapped[idx]) & 0x0F; - - if (idx == 4 || idx == 6 || idx == 8 || idx == 10) - buffer[buffer_idx++] = '-'; - - buffer[buffer_idx++] = (hi >= 10) ? 'A' + hi - 10 : '0' + hi; - buffer[buffer_idx++] = (lo >= 10) ? 'A' + lo - 10 : '0' + lo; - } - - // NULL terminate - buffer[(buffer_idx < buffer_length) ? buffer_idx : buffer_idx - 1] = 0; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/linux/file_id.h b/sources/google-breakpad/src/common/linux/file_id.h deleted file mode 100644 index 2642722a..00000000 --- a/sources/google-breakpad/src/common/linux/file_id.h +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. -// -// file_id.h: Return a unique identifier for a file -// - -#ifndef COMMON_LINUX_FILE_ID_H__ -#define COMMON_LINUX_FILE_ID_H__ - -#include -#include - -#include "common/linux/guid_creator.h" - -namespace google_breakpad { - -static const size_t kMDGUIDSize = sizeof(MDGUID); - -class FileID { - public: - explicit FileID(const char* path); - ~FileID() {} - - // Load the identifier for the elf file path specified in the constructor into - // |identifier|. Return false if the identifier could not be created for the - // file. - // The current implementation will look for a .note.gnu.build-id - // section and use that as the file id, otherwise it falls back to - // XORing the first 4096 bytes of the .text section to generate an identifier. - bool ElfFileIdentifier(uint8_t identifier[kMDGUIDSize]); - - // Load the identifier for the elf file mapped into memory at |base| into - // |identifier|. Return false if the identifier could not be created for the - // file. - static bool ElfFileIdentifierFromMappedFile(const void* base, - uint8_t identifier[kMDGUIDSize]); - - // Convert the |identifier| data to a NULL terminated string. The string will - // be formatted as a UUID (e.g., 22F065BB-FC9C-49F7-80FE-26A7CEBD7BCE). - // The |buffer| should be at least 37 bytes long to receive all of the data - // and termination. Shorter buffers will contain truncated data. - static void ConvertIdentifierToString(const uint8_t identifier[kMDGUIDSize], - char* buffer, int buffer_length); - - private: - // Storage for the path specified - std::string path_; -}; - -} // namespace google_breakpad - -#endif // COMMON_LINUX_FILE_ID_H__ diff --git a/sources/google-breakpad/src/common/linux/guid_creator.cc b/sources/google-breakpad/src/common/linux/guid_creator.cc deleted file mode 100644 index bfb308ee..00000000 --- a/sources/google-breakpad/src/common/linux/guid_creator.cc +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include "common/linux/guid_creator.h" - -#include -#include -#include -#include -#include -#include - -// -// GUIDGenerator -// -// This class is used to generate random GUID. -// Currently use random number to generate a GUID since Linux has -// no native GUID generator. This should be OK since we don't expect -// crash to happen very offen. -// -class GUIDGenerator { - public: - static uint32_t BytesToUInt32(const uint8_t bytes[]) { - return ((uint32_t) bytes[0] - | ((uint32_t) bytes[1] << 8) - | ((uint32_t) bytes[2] << 16) - | ((uint32_t) bytes[3] << 24)); - } - - static void UInt32ToBytes(uint8_t bytes[], uint32_t n) { - bytes[0] = n & 0xff; - bytes[1] = (n >> 8) & 0xff; - bytes[2] = (n >> 16) & 0xff; - bytes[3] = (n >> 24) & 0xff; - } - - static bool CreateGUID(GUID *guid) { - InitOnce(); - guid->data1 = random(); - guid->data2 = (uint16_t)(random()); - guid->data3 = (uint16_t)(random()); - UInt32ToBytes(&guid->data4[0], random()); - UInt32ToBytes(&guid->data4[4], random()); - return true; - } - - private: - static void InitOnce() { - pthread_once(&once_control, &InitOnceImpl); - } - - static void InitOnceImpl() { - srandom(time(NULL)); - } - - static pthread_once_t once_control; -}; - -pthread_once_t GUIDGenerator::once_control = PTHREAD_ONCE_INIT; - -bool CreateGUID(GUID *guid) { - return GUIDGenerator::CreateGUID(guid); -} - -// Parse guid to string. -bool GUIDToString(const GUID *guid, char *buf, int buf_len) { - // Should allow more space the the max length of GUID. - assert(buf_len > kGUIDStringLength); - int num = snprintf(buf, buf_len, kGUIDFormatString, - guid->data1, guid->data2, guid->data3, - GUIDGenerator::BytesToUInt32(&(guid->data4[0])), - GUIDGenerator::BytesToUInt32(&(guid->data4[4]))); - if (num != kGUIDStringLength) - return false; - - buf[num] = '\0'; - return true; -} diff --git a/sources/google-breakpad/src/common/linux/guid_creator.h b/sources/google-breakpad/src/common/linux/guid_creator.h deleted file mode 100644 index c86d856c..00000000 --- a/sources/google-breakpad/src/common/linux/guid_creator.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_LINUX_GUID_CREATOR_H__ -#define COMMON_LINUX_GUID_CREATOR_H__ - -#include "google_breakpad/common/minidump_format.h" - -typedef MDGUID GUID; - -// Format string for parsing GUID. -#define kGUIDFormatString "%08x-%04x-%04x-%08x-%08x" -// Length of GUID string. Don't count the ending '\0'. -#define kGUIDStringLength 36 - -// Create a guid. -bool CreateGUID(GUID *guid); - -// Get the string from guid. -bool GUIDToString(const GUID *guid, char *buf, int buf_len); - -#endif diff --git a/sources/google-breakpad/src/common/linux/ignore_ret.h b/sources/google-breakpad/src/common/linux/ignore_ret.h deleted file mode 100644 index f60384bb..00000000 --- a/sources/google-breakpad/src/common/linux/ignore_ret.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) 2012 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_LINUX_IGNORE_RET_H_ -#define COMMON_LINUX_IGNORE_RET_H_ - -// Some compilers are prone to warn about unused return values. In cases where -// either a) the call cannot fail, or b) there is nothing that can be done when -// the call fails, IGNORE_RET() can be used to mark the return code as ignored. -// This avoids spurious compiler warnings. - -#define IGNORE_RET(x) do { if (x); } while (0) - -#endif // COMMON_LINUX_IGNORE_RET_H_ diff --git a/sources/google-breakpad/src/common/linux/linux_libc_support.cc b/sources/google-breakpad/src/common/linux/linux_libc_support.cc deleted file mode 100644 index 08b0325e..00000000 --- a/sources/google-breakpad/src/common/linux/linux_libc_support.cc +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// This source file provides replacements for libc functions that we need. If -// we call the libc functions directly we risk crashing in the dynamic linker -// as it tries to resolve uncached PLT entries. - -#include "common/linux/linux_libc_support.h" - -#include - -extern "C" { - -size_t my_strlen(const char* s) { - size_t len = 0; - while (*s++) len++; - return len; -} - -int my_strcmp(const char* a, const char* b) { - for (;;) { - if (*a < *b) - return -1; - else if (*a > *b) - return 1; - else if (*a == 0) - return 0; - a++; - b++; - } -} - -int my_strncmp(const char* a, const char* b, size_t len) { - for (size_t i = 0; i < len; ++i) { - if (*a < *b) - return -1; - else if (*a > *b) - return 1; - else if (*a == 0) - return 0; - a++; - b++; - } - - return 0; -} - -// Parse a non-negative integer. -// result: (output) the resulting non-negative integer -// s: a NUL terminated string -// Return true iff successful. -bool my_strtoui(int* result, const char* s) { - if (*s == 0) - return false; - int r = 0; - for (;; s++) { - if (*s == 0) - break; - const int old_r = r; - r *= 10; - if (*s < '0' || *s > '9') - return false; - r += *s - '0'; - if (r < old_r) - return false; - } - - *result = r; - return true; -} - -// Return the length of the given unsigned integer when expressed in base 10. -unsigned my_uint_len(uintmax_t i) { - if (!i) - return 1; - - int len = 0; - while (i) { - len++; - i /= 10; - } - - return len; -} - -// Convert an unsigned integer to a string -// output: (output) the resulting string is written here. This buffer must be -// large enough to hold the resulting string. Call |my_uint_len| to get the -// required length. -// i: the unsigned integer to serialise. -// i_len: the length of the integer in base 10 (see |my_uint_len|). -void my_uitos(char* output, uintmax_t i, unsigned i_len) { - for (unsigned index = i_len; index; --index, i /= 10) - output[index - 1] = '0' + (i % 10); -} - -const char* my_strchr(const char* haystack, char needle) { - while (*haystack && *haystack != needle) - haystack++; - if (*haystack == needle) - return haystack; - return (const char*) 0; -} - -const char* my_strrchr(const char* haystack, char needle) { - const char* ret = NULL; - while (*haystack) { - if (*haystack == needle) - ret = haystack; - haystack++; - } - return ret; -} - -void* my_memchr(const void* src, int needle, size_t src_len) { - const unsigned char* p = (const unsigned char*)src; - const unsigned char* p_end = p + src_len; - for (; p < p_end; ++p) { - if (*p == needle) - return (void*)p; - } - return NULL; -} - -// Read a hex value -// result: (output) the resulting value -// s: a string -// Returns a pointer to the first invalid charactor. -const char* my_read_hex_ptr(uintptr_t* result, const char* s) { - uintptr_t r = 0; - - for (;; ++s) { - if (*s >= '0' && *s <= '9') { - r <<= 4; - r += *s - '0'; - } else if (*s >= 'a' && *s <= 'f') { - r <<= 4; - r += (*s - 'a') + 10; - } else if (*s >= 'A' && *s <= 'F') { - r <<= 4; - r += (*s - 'A') + 10; - } else { - break; - } - } - - *result = r; - return s; -} - -const char* my_read_decimal_ptr(uintptr_t* result, const char* s) { - uintptr_t r = 0; - - for (;; ++s) { - if (*s >= '0' && *s <= '9') { - r *= 10; - r += *s - '0'; - } else { - break; - } - } - *result = r; - return s; -} - -void my_memset(void* ip, char c, size_t len) { - char* p = (char *) ip; - while (len--) - *p++ = c; -} - -size_t my_strlcpy(char* s1, const char* s2, size_t len) { - size_t pos1 = 0; - size_t pos2 = 0; - - while (s2[pos2] != '\0') { - if (pos1 + 1 < len) { - s1[pos1] = s2[pos2]; - pos1++; - } - pos2++; - } - if (len > 0) - s1[pos1] = '\0'; - - return pos2; -} - -size_t my_strlcat(char* s1, const char* s2, size_t len) { - size_t pos1 = 0; - - while (pos1 < len && s1[pos1] != '\0') - pos1++; - - if (pos1 == len) - return pos1; - - return pos1 + my_strlcpy(s1 + pos1, s2, len - pos1); -} - -int my_isspace(int ch) { - // Matches the C locale. - const char spaces[] = " \t\f\n\r\t\v"; - for (size_t i = 0; i < sizeof(spaces); i++) { - if (ch == spaces[i]) - return 1; - } - return 0; -} - -} // extern "C" diff --git a/sources/google-breakpad/src/common/linux/linux_libc_support.h b/sources/google-breakpad/src/common/linux/linux_libc_support.h deleted file mode 100644 index ec5a8d6b..00000000 --- a/sources/google-breakpad/src/common/linux/linux_libc_support.h +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2009, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// This header provides replacements for libc functions that we need. We if -// call the libc functions directly we risk crashing in the dynamic linker as -// it tries to resolve uncached PLT entries. - -#ifndef CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_ -#define CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_ - -#include -#include -#include - -extern "C" { - -extern size_t my_strlen(const char* s); - -extern int my_strcmp(const char* a, const char* b); - -extern int my_strncmp(const char* a, const char* b, size_t len); - -// Parse a non-negative integer. -// result: (output) the resulting non-negative integer -// s: a NUL terminated string -// Return true iff successful. -extern bool my_strtoui(int* result, const char* s); - -// Return the length of the given unsigned integer when expressed in base 10. -extern unsigned my_uint_len(uintmax_t i); - -// Convert an unsigned integer to a string -// output: (output) the resulting string is written here. This buffer must be -// large enough to hold the resulting string. Call |my_uint_len| to get the -// required length. -// i: the unsigned integer to serialise. -// i_len: the length of the integer in base 10 (see |my_uint_len|). -extern void my_uitos(char* output, uintmax_t i, unsigned i_len); - -extern const char* my_strchr(const char* haystack, char needle); - -extern const char* my_strrchr(const char* haystack, char needle); - -// Read a hex value -// result: (output) the resulting value -// s: a string -// Returns a pointer to the first invalid charactor. -extern const char* my_read_hex_ptr(uintptr_t* result, const char* s); - -extern const char* my_read_decimal_ptr(uintptr_t* result, const char* s); - -extern void my_memset(void* ip, char c, size_t len); - -extern void* my_memchr(const void* src, int c, size_t len); - -// The following are considered safe to use in a compromised environment. -// Besides, this gives the compiler an opportunity to optimize their calls. -#define my_memcpy memcpy -#define my_memmove memmove -#define my_memcmp memcmp - -extern size_t my_strlcpy(char* s1, const char* s2, size_t len); - -extern size_t my_strlcat(char* s1, const char* s2, size_t len); - -extern int my_isspace(int ch); - -} // extern "C" - -#endif // CLIENT_LINUX_LINUX_LIBC_SUPPORT_H_ diff --git a/sources/google-breakpad/src/common/linux/memory_mapped_file.cc b/sources/google-breakpad/src/common/linux/memory_mapped_file.cc deleted file mode 100644 index 592b66c8..00000000 --- a/sources/google-breakpad/src/common/linux/memory_mapped_file.cc +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// memory_mapped_file.cc: Implement google_breakpad::MemoryMappedFile. -// See memory_mapped_file.h for details. - -#include "common/linux/memory_mapped_file.h" - -#include -#include -#if defined(__ANDROID__) -#include -#endif -#include - -#include "common/memory_range.h" -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -MemoryMappedFile::MemoryMappedFile() {} - -MemoryMappedFile::MemoryMappedFile(const char* path, size_t offset) { - Map(path, offset); -} - -MemoryMappedFile::~MemoryMappedFile() { - Unmap(); -} - -#include - -bool MemoryMappedFile::Map(const char* path, size_t offset) { - Unmap(); - - int fd = sys_open(path, O_RDONLY, 0); - if (fd == -1) { - return false; - } - -#if defined(__x86_64__) || defined(__aarch64__) || \ - (defined(__mips__) && _MIPS_SIM == _ABI64) - - struct kernel_stat st; - if (sys_fstat(fd, &st) == -1 || st.st_size < 0) { -#else - struct kernel_stat64 st; - if (sys_fstat64(fd, &st) == -1 || st.st_size < 0) { -#endif - sys_close(fd); - return false; - } - - // Strangely file size can be negative, but we check above that it is not. - size_t file_len = static_cast(st.st_size); - // If the file does not extend beyond the offset, simply use an empty - // MemoryRange and return true. Don't bother to call mmap() - // even though mmap() can handle an empty file on some platforms. - if (offset >= file_len) { - sys_close(fd); - return true; - } - -#if defined(__x86_64__) || defined(__aarch64__) || \ - (defined(__mips__) && _MIPS_SIM == _ABI64) - void* data = sys_mmap(NULL, file_len, PROT_READ, MAP_PRIVATE, fd, offset); -#else - if ((offset & 4095) != 0) { - // Not page aligned. - sys_close(fd); - return false; - } - void* data = sys_mmap2( - NULL, file_len, PROT_READ, MAP_PRIVATE, fd, offset >> 12); -#endif - sys_close(fd); - if (data == MAP_FAILED) { - return false; - } - - content_.Set(data, file_len - offset); - return true; -} - -void MemoryMappedFile::Unmap() { - if (content_.data()) { - sys_munmap(const_cast(content_.data()), content_.length()); - content_.Set(NULL, 0); - } -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/linux/memory_mapped_file.h b/sources/google-breakpad/src/common/linux/memory_mapped_file.h deleted file mode 100644 index fa660cc9..00000000 --- a/sources/google-breakpad/src/common/linux/memory_mapped_file.h +++ /dev/null @@ -1,87 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// memory_mapped_file.h: Define the google_breakpad::MemoryMappedFile -// class, which maps a file into memory for read-only access. - -#ifndef COMMON_LINUX_MEMORY_MAPPED_FILE_H_ -#define COMMON_LINUX_MEMORY_MAPPED_FILE_H_ - -#include -#include "common/basictypes.h" -#include "common/memory_range.h" - -namespace google_breakpad { - -// A utility class for mapping a file into memory for read-only access of -// the file content. Its implementation avoids calling into libc functions -// by directly making system calls for open, close, mmap, and munmap. -class MemoryMappedFile { - public: - MemoryMappedFile(); - - // Constructor that calls Map() to map a file at |path| into memory. - // If Map() fails, the object behaves as if it is default constructed. - MemoryMappedFile(const char* path, size_t offset); - - ~MemoryMappedFile(); - - // Maps a file at |path| into memory, which can then be accessed via - // content() as a MemoryRange object or via data(), and returns true on - // success. Mapping an empty file will succeed but with data() and size() - // returning NULL and 0, respectively. An existing mapping is unmapped - // before a new mapping is created. - bool Map(const char* path, size_t offset); - - // Unmaps the memory for the mapped file. It's a no-op if no file is - // mapped. - void Unmap(); - - // Returns a MemoryRange object that covers the memory for the mapped - // file. The MemoryRange object is empty if no file is mapped. - const MemoryRange& content() const { return content_; } - - // Returns a pointer to the beginning of the memory for the mapped file. - // or NULL if no file is mapped or the mapped file is empty. - const void* data() const { return content_.data(); } - - // Returns the size in bytes of the mapped file, or zero if no file - // is mapped. - size_t size() const { return content_.length(); } - - private: - // Mapped file content as a MemoryRange object. - MemoryRange content_; - - DISALLOW_COPY_AND_ASSIGN(MemoryMappedFile); -}; - -} // namespace google_breakpad - -#endif // COMMON_LINUX_MEMORY_MAPPED_FILE_H_ diff --git a/sources/google-breakpad/src/common/linux/safe_readlink.cc b/sources/google-breakpad/src/common/linux/safe_readlink.cc deleted file mode 100644 index 870c28af..00000000 --- a/sources/google-breakpad/src/common/linux/safe_readlink.cc +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// safe_readlink.cc: Implement google_breakpad::SafeReadLink. -// See safe_readlink.h for details. - -#include - -#include "third_party/lss/linux_syscall_support.h" - -namespace google_breakpad { - -bool SafeReadLink(const char* path, char* buffer, size_t buffer_size) { - // sys_readlink() does not add a NULL byte to |buffer|. In order to return - // a NULL-terminated string in |buffer|, |buffer_size| should be at least - // one byte longer than the expected path length. Also, sys_readlink() - // returns the actual path length on success, which does not count the - // NULL byte, so |result_size| should be less than |buffer_size|. - ssize_t result_size = sys_readlink(path, buffer, buffer_size); - if (result_size >= 0 && static_cast(result_size) < buffer_size) { - buffer[result_size] = '\0'; - return true; - } - return false; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/linux/safe_readlink.h b/sources/google-breakpad/src/common/linux/safe_readlink.h deleted file mode 100644 index 4ae131b5..00000000 --- a/sources/google-breakpad/src/common/linux/safe_readlink.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// safe_readlink.h: Define the google_breakpad::SafeReadLink function, -// which wraps sys_readlink and gurantees the result is NULL-terminated. - -#ifndef COMMON_LINUX_SAFE_READLINK_H_ -#define COMMON_LINUX_SAFE_READLINK_H_ - -#include - -namespace google_breakpad { - -// This function wraps sys_readlink() and performs the same functionalty, -// but guarantees |buffer| is NULL-terminated if sys_readlink() returns -// no error. It takes the same arguments as sys_readlink(), but unlike -// sys_readlink(), it returns true on success. -// -// |buffer_size| specifies the size of |buffer| in bytes. As this function -// always NULL-terminates |buffer| on success, |buffer_size| should be -// at least one byte longer than the expected path length (e.g. PATH_MAX, -// which is typically defined as the maximum length of a path name -// including the NULL byte). -// -// The implementation of this function calls sys_readlink() instead of -// readlink(), it can thus be used in the context where calling to libc -// functions is discouraged. -bool SafeReadLink(const char* path, char* buffer, size_t buffer_size); - -// Same as the three-argument version of SafeReadLink() but deduces the -// size of |buffer| if it is a char array of known size. -template -bool SafeReadLink(const char* path, char (&buffer)[N]) { - return SafeReadLink(path, buffer, sizeof(buffer)); -} - -} // namespace google_breakpad - -#endif // COMMON_LINUX_SAFE_READLINK_H_ diff --git a/sources/google-breakpad/src/common/md5.cc b/sources/google-breakpad/src/common/md5.cc deleted file mode 100644 index a0d9a1bd..00000000 --- a/sources/google-breakpad/src/common/md5.cc +++ /dev/null @@ -1,251 +0,0 @@ -/* - * 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 - * MD5Context 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. - */ - -#include - -#include "common/md5.h" - -namespace google_breakpad { - -#ifndef WORDS_BIGENDIAN -#define byteReverse(buf, len) /* Nothing */ -#else -/* - * Note: this code is harmless on little-endian machines. - */ -static void byteReverse(unsigned char *buf, unsigned longs) -{ - u32 t; - do { - t = (u32) ((unsigned) buf[3] << 8 | buf[2]) << 16 | - ((unsigned) buf[1] << 8 | buf[0]); - *(u32 *) buf = t; - buf += 4; - } while (--longs); -} -#endif - -static void MD5Transform(u32 buf[4], u32 const in[16]); - -/* - * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious - * initialization constants. - */ -void MD5Init(struct MD5Context *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; -} - -/* - * Update context to reflect the concatenation of another buffer full - * of bytes. - */ -void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len) -{ - u32 t; - - /* Update bitcount */ - - t = ctx->bits[0]; - if ((ctx->bits[0] = t + ((u32) len << 3)) < t) - ctx->bits[1]++; /* Carry from low to high */ - ctx->bits[1] += len >> 29; - - t = (t >> 3) & 0x3f; /* Bytes already in shsInfo->data */ - - /* Handle any leading odd-sized chunks */ - - if (t) { - unsigned char *p = (unsigned char *) ctx->in + t; - - t = 64 - t; - if (len < t) { - memcpy(p, buf, len); - return; - } - memcpy(p, buf, t); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (u32 *) ctx->in); - buf += t; - len -= t; - } - /* Process data in 64-byte chunks */ - - while (len >= 64) { - memcpy(ctx->in, buf, 64); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (u32 *) ctx->in); - buf += 64; - len -= 64; - } - - /* Handle any remaining bytes of data. */ - - memcpy(ctx->in, buf, len); -} - -/* - * Final wrapup - pad to 64-byte boundary with the bit pattern - * 1 0* (64-bit count of bits processed, MSB-first) - */ -void MD5Final(unsigned char digest[16], struct MD5Context *ctx) -{ - unsigned count; - unsigned char *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 = 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); - byteReverse(ctx->in, 16); - MD5Transform(ctx->buf, (u32 *) 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); - } - byteReverse(ctx->in, 14); - - /* Append length in bits and transform */ - ((u32 *) ctx->in)[14] = ctx->bits[0]; - ((u32 *) ctx->in)[15] = ctx->bits[1]; - - MD5Transform(ctx->buf, (u32 *) ctx->in); - byteReverse((unsigned char *) ctx->buf, 4); - memcpy(digest, ctx->buf, 16); - memset(ctx, 0, sizeof(*ctx)); /* In case it's sensitive */ -} - -/* The four core functions - F1 is optimized somewhat */ - -/* #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)) - -/* 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. MD5Update blocks - * the data and converts bytes into longwords for this routine. - */ -static void MD5Transform(u32 buf[4], u32 const in[16]) -{ - u32 a, b, c, d; - - a = buf[0]; - b = buf[1]; - c = buf[2]; - d = buf[3]; - - 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; -} - -} // namespace google_breakpad - diff --git a/sources/google-breakpad/src/common/md5.h b/sources/google-breakpad/src/common/md5.h deleted file mode 100644 index 2ab0ab95..00000000 --- a/sources/google-breakpad/src/common/md5.h +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2007 Google Inc. All Rights Reserved. -// Author: liuli@google.com (Liu Li) -#ifndef COMMON_MD5_H__ -#define COMMON_MD5_H__ - -#include - -namespace google_breakpad { - -typedef uint32_t u32; -typedef uint8_t u8; - -struct MD5Context { - u32 buf[4]; - u32 bits[2]; - u8 in[64]; -}; - -void MD5Init(struct MD5Context *ctx); - -void MD5Update(struct MD5Context *ctx, unsigned char const *buf, size_t len); - -void MD5Final(unsigned char digest[16], struct MD5Context *ctx); - -} // namespace google_breakpad - -#endif // COMMON_MD5_H__ diff --git a/sources/google-breakpad/src/common/memory.h b/sources/google-breakpad/src/common/memory.h deleted file mode 100644 index d6aa137d..00000000 --- a/sources/google-breakpad/src/common/memory.h +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright (c) 2009, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_MEMORY_H_ -#define GOOGLE_BREAKPAD_COMMON_MEMORY_H_ - -#include -#include -#include -#include - -#include -#include - -#if defined(MEMORY_SANITIZER) -#include -#endif - -#ifdef __APPLE__ -#define sys_mmap mmap -#define sys_mmap2 mmap -#define sys_munmap munmap -#define MAP_ANONYMOUS MAP_ANON -#else -#include "third_party/lss/linux_syscall_support.h" -#endif - -namespace google_breakpad { - -// This is very simple allocator which fetches pages from the kernel directly. -// Thus, it can be used even when the heap may be corrupted. -// -// There is no free operation. The pages are only freed when the object is -// destroyed. -class PageAllocator { - public: - PageAllocator() - : page_size_(getpagesize()), - last_(NULL), - current_page_(NULL), - page_offset_(0) { - } - - ~PageAllocator() { - FreeAll(); - } - - void *Alloc(size_t bytes) { - if (!bytes) - return NULL; - - if (current_page_ && page_size_ - page_offset_ >= bytes) { - uint8_t *const ret = current_page_ + page_offset_; - page_offset_ += bytes; - if (page_offset_ == page_size_) { - page_offset_ = 0; - current_page_ = NULL; - } - - return ret; - } - - const size_t pages = - (bytes + sizeof(PageHeader) + page_size_ - 1) / page_size_; - uint8_t *const ret = GetNPages(pages); - if (!ret) - return NULL; - - page_offset_ = - (page_size_ - (page_size_ * pages - (bytes + sizeof(PageHeader)))) % - page_size_; - current_page_ = page_offset_ ? ret + page_size_ * (pages - 1) : NULL; - - return ret + sizeof(PageHeader); - } - - // Checks whether the page allocator owns the passed-in pointer. - // This method exists for testing pursposes only. - bool OwnsPointer(const void* p) { - for (PageHeader* header = last_; header; header = header->next) { - const char* current = reinterpret_cast(header); - if ((p >= current) && (p < current + header->num_pages * page_size_)) - return true; - } - - return false; - } - - private: - uint8_t *GetNPages(size_t num_pages) { -#if defined(__x86_64__) || defined(__aarch64__) || defined(__aarch64__) || \ - ((defined(__mips__) && _MIPS_SIM == _ABI64)) - void *a = sys_mmap(NULL, page_size_ * num_pages, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); -#else - void *a = sys_mmap2(NULL, page_size_ * num_pages, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); -#endif - if (a == MAP_FAILED) - return NULL; - -#if defined(MEMORY_SANITIZER) - // We need to indicate to MSan that memory allocated through sys_mmap is - // initialized, since linux_syscall_support.h doesn't have MSan hooks. - __msan_unpoison(a, page_size_ * num_pages); -#endif - - struct PageHeader *header = reinterpret_cast(a); - header->next = last_; - header->num_pages = num_pages; - last_ = header; - - return reinterpret_cast(a); - } - - void FreeAll() { - PageHeader *next; - - for (PageHeader *cur = last_; cur; cur = next) { - next = cur->next; - sys_munmap(cur, cur->num_pages * page_size_); - } - } - - struct PageHeader { - PageHeader *next; // pointer to the start of the next set of pages. - size_t num_pages; // the number of pages in this set. - }; - - const size_t page_size_; - PageHeader *last_; - uint8_t *current_page_; - size_t page_offset_; -}; - -// Wrapper to use with STL containers -template -struct PageStdAllocator : public std::allocator { - typedef typename std::allocator::pointer pointer; - typedef typename std::allocator::size_type size_type; - - explicit PageStdAllocator(PageAllocator& allocator): allocator_(allocator) {} - template PageStdAllocator(const PageStdAllocator& other) - : allocator_(other.allocator_) {} - - inline pointer allocate(size_type n, const void* = 0) { - return static_cast(allocator_.Alloc(sizeof(T) * n)); - } - - inline void deallocate(pointer, size_type) { - // The PageAllocator doesn't free. - } - - template struct rebind { - typedef PageStdAllocator other; - }; - - private: - // Silly workaround for the gcc from Android's ndk (gcc 4.6), which will - // otherwise complain that `other.allocator_` is private in the constructor - // code. - template friend struct PageStdAllocator; - - PageAllocator& allocator_; -}; - -// A wasteful vector is a std::vector, except that it allocates memory from a -// PageAllocator. It's wasteful because, when resizing, it always allocates a -// whole new array since the PageAllocator doesn't support realloc. -template -class wasteful_vector : public std::vector > { - public: - wasteful_vector(PageAllocator* allocator, unsigned size_hint = 16) - : std::vector >(PageStdAllocator(*allocator)) { - std::vector >::reserve(size_hint); - } -}; - -} // namespace google_breakpad - -inline void* operator new(size_t nbytes, - google_breakpad::PageAllocator& allocator) { - return allocator.Alloc(nbytes); -} - -#endif // GOOGLE_BREAKPAD_COMMON_MEMORY_H_ diff --git a/sources/google-breakpad/src/common/memory_range.h b/sources/google-breakpad/src/common/memory_range.h deleted file mode 100644 index 41dd2da6..00000000 --- a/sources/google-breakpad/src/common/memory_range.h +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// memory_range.h: Define the google_breakpad::MemoryRange class, which -// is a lightweight wrapper with a pointer and a length to encapsulate -// a contiguous range of memory. - -#ifndef COMMON_MEMORY_RANGE_H_ -#define COMMON_MEMORY_RANGE_H_ - -#include - -#include "google_breakpad/common/breakpad_types.h" - -namespace google_breakpad { - -// A lightweight wrapper with a pointer and a length to encapsulate a -// contiguous range of memory. It provides helper methods for checked -// access of a subrange of the memory. Its implemementation does not -// allocate memory or call into libc functions, and is thus safer to use -// in a crashed environment. -class MemoryRange { - public: - MemoryRange() : data_(NULL), length_(0) {} - - MemoryRange(const void* data, size_t length) { - Set(data, length); - } - - // Returns true if this memory range contains no data. - bool IsEmpty() const { - // Set() guarantees that |length_| is zero if |data_| is NULL. - return length_ == 0; - } - - // Resets to an empty range. - void Reset() { - data_ = NULL; - length_ = 0; - } - - // Sets this memory range to point to |data| and its length to |length|. - void Set(const void* data, size_t length) { - data_ = reinterpret_cast(data); - // Always set |length_| to zero if |data_| is NULL. - length_ = data ? length : 0; - } - - // Returns true if this range covers a subrange of |sub_length| bytes - // at |sub_offset| bytes of this memory range, or false otherwise. - bool Covers(size_t sub_offset, size_t sub_length) const { - // The following checks verify that: - // 1. sub_offset is within [ 0 .. length_ - 1 ] - // 2. sub_offset + sub_length is within - // [ sub_offset .. length_ ] - return sub_offset < length_ && - sub_offset + sub_length >= sub_offset && - sub_offset + sub_length <= length_; - } - - // Returns a raw data pointer to a subrange of |sub_length| bytes at - // |sub_offset| bytes of this memory range, or NULL if the subrange - // is out of bounds. - const void* GetData(size_t sub_offset, size_t sub_length) const { - return Covers(sub_offset, sub_length) ? (data_ + sub_offset) : NULL; - } - - // Same as the two-argument version of GetData() but uses sizeof(DataType) - // as the subrange length and returns an |DataType| pointer for convenience. - template - const DataType* GetData(size_t sub_offset) const { - return reinterpret_cast( - GetData(sub_offset, sizeof(DataType))); - } - - // Returns a raw pointer to the |element_index|-th element of an array - // of elements of length |element_size| starting at |sub_offset| bytes - // of this memory range, or NULL if the element is out of bounds. - const void* GetArrayElement(size_t element_offset, - size_t element_size, - unsigned element_index) const { - size_t sub_offset = element_offset + element_index * element_size; - return GetData(sub_offset, element_size); - } - - // Same as the three-argument version of GetArrayElement() but deduces - // the element size using sizeof(ElementType) and returns an |ElementType| - // pointer for convenience. - template - const ElementType* GetArrayElement(size_t element_offset, - unsigned element_index) const { - return reinterpret_cast( - GetArrayElement(element_offset, sizeof(ElementType), element_index)); - } - - // Returns a subrange of |sub_length| bytes at |sub_offset| bytes of - // this memory range, or an empty range if the subrange is out of bounds. - MemoryRange Subrange(size_t sub_offset, size_t sub_length) const { - return Covers(sub_offset, sub_length) ? - MemoryRange(data_ + sub_offset, sub_length) : MemoryRange(); - } - - // Returns a pointer to the beginning of this memory range. - const uint8_t* data() const { return data_; } - - // Returns the length, in bytes, of this memory range. - size_t length() const { return length_; } - - private: - // Pointer to the beginning of this memory range. - const uint8_t* data_; - - // Length, in bytes, of this memory range. - size_t length_; -}; - -} // namespace google_breakpad - -#endif // COMMON_MEMORY_RANGE_H_ diff --git a/sources/google-breakpad/src/common/minidump_type_helper.h b/sources/google-breakpad/src/common/minidump_type_helper.h deleted file mode 100644 index 5a7d5a6a..00000000 --- a/sources/google-breakpad/src/common/minidump_type_helper.h +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) 2014, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_ - -#include - -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -template -struct MDTypeHelper; - -template <> -struct MDTypeHelper { - typedef MDRawDebug32 MDRawDebug; - typedef MDRawLinkMap32 MDRawLinkMap; -}; - -template <> -struct MDTypeHelper { - typedef MDRawDebug64 MDRawDebug; - typedef MDRawLinkMap64 MDRawLinkMap; -}; - -} // namespace google_breakpad - -#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_TYPE_HELPER_H_ diff --git a/sources/google-breakpad/src/common/module.cc b/sources/google-breakpad/src/common/module.cc deleted file mode 100644 index fa798f48..00000000 --- a/sources/google-breakpad/src/common/module.cc +++ /dev/null @@ -1,319 +0,0 @@ -// Copyright (c) 2011 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Original author: Jim Blandy - -// module.cc: Implement google_breakpad::Module. See module.h. - -#include "common/module.h" - -#include -#include -#include -#include - -#include -#include - -namespace google_breakpad { - -using std::dec; -using std::endl; -using std::hex; - - -Module::Module(const string &name, const string &os, - const string &architecture, const string &id) : - name_(name), - os_(os), - architecture_(architecture), - id_(id), - load_address_(0) { } - -Module::~Module() { - for (FileByNameMap::iterator it = files_.begin(); it != files_.end(); ++it) - delete it->second; - for (FunctionSet::iterator it = functions_.begin(); - it != functions_.end(); ++it) { - delete *it; - } - for (vector::iterator it = stack_frame_entries_.begin(); - it != stack_frame_entries_.end(); ++it) { - delete *it; - } - for (ExternSet::iterator it = externs_.begin(); it != externs_.end(); ++it) - delete *it; -} - -void Module::SetLoadAddress(Address address) { - load_address_ = address; -} - -void Module::AddFunction(Function *function) { - // FUNC lines must not hold an empty name, so catch the problem early if - // callers try to add one. - assert(!function->name.empty()); - - // FUNCs are better than PUBLICs as they come with sizes, so remove an extern - // with the same address if present. - Extern ext(function->address); - ExternSet::iterator it_ext = externs_.find(&ext); - if (it_ext == externs_.end() && - architecture_ == "arm" && - (function->address & 0x1) == 0) { - // ARM THUMB functions have bit 0 set. ARM64 does not have THUMB. - Extern arm_thumb_ext(function->address | 0x1); - it_ext = externs_.find(&arm_thumb_ext); - } - if (it_ext != externs_.end()) { - delete *it_ext; - externs_.erase(it_ext); - } -#if _DEBUG - { - // There should be no other PUBLIC symbols that overlap with the function. - Extern debug_ext(function->address); - ExternSet::iterator it_debug = externs_.lower_bound(&ext); - assert(it_debug == externs_.end() || - (*it_debug)->address >= function->address + function->size); - } -#endif - - std::pair ret = functions_.insert(function); - if (!ret.second && (*ret.first != function)) { - // Free the duplicate that was not inserted because this Module - // now owns it. - delete function; - } -} - -void Module::AddFunctions(vector::iterator begin, - vector::iterator end) { - for (vector::iterator it = begin; it != end; ++it) - AddFunction(*it); -} - -void Module::AddStackFrameEntry(StackFrameEntry *stack_frame_entry) { - stack_frame_entries_.push_back(stack_frame_entry); -} - -void Module::AddExtern(Extern *ext) { - std::pair ret = externs_.insert(ext); - if (!ret.second) { - // Free the duplicate that was not inserted because this Module - // now owns it. - delete ext; - } -} - -void Module::GetFunctions(vector *vec, - vector::iterator i) { - vec->insert(i, functions_.begin(), functions_.end()); -} - -void Module::GetExterns(vector *vec, - vector::iterator i) { - vec->insert(i, externs_.begin(), externs_.end()); -} - -Module::File *Module::FindFile(const string &name) { - // A tricky bit here. The key of each map entry needs to be a - // pointer to the entry's File's name string. This means that we - // can't do the initial lookup with any operation that would create - // an empty entry for us if the name isn't found (like, say, - // operator[] or insert do), because such a created entry's key will - // be a pointer the string passed as our argument. Since the key of - // a map's value type is const, we can't fix it up once we've - // created our file. lower_bound does the lookup without doing an - // insertion, and returns a good hint iterator to pass to insert. - // Our "destiny" is where we belong, whether we're there or not now. - FileByNameMap::iterator destiny = files_.lower_bound(&name); - if (destiny == files_.end() - || *destiny->first != name) { // Repeated string comparison, boo hoo. - File *file = new File(name); - file->source_id = -1; - destiny = files_.insert(destiny, - FileByNameMap::value_type(&file->name, file)); - } - return destiny->second; -} - -Module::File *Module::FindFile(const char *name) { - string name_string = name; - return FindFile(name_string); -} - -Module::File *Module::FindExistingFile(const string &name) { - FileByNameMap::iterator it = files_.find(&name); - return (it == files_.end()) ? NULL : it->second; -} - -void Module::GetFiles(vector *vec) { - vec->clear(); - for (FileByNameMap::iterator it = files_.begin(); it != files_.end(); ++it) - vec->push_back(it->second); -} - -void Module::GetStackFrameEntries(vector *vec) const { - *vec = stack_frame_entries_; -} - -void Module::AssignSourceIds() { - // First, give every source file an id of -1. - for (FileByNameMap::iterator file_it = files_.begin(); - file_it != files_.end(); ++file_it) { - file_it->second->source_id = -1; - } - - // Next, mark all files actually cited by our functions' line number - // info, by setting each one's source id to zero. - for (FunctionSet::const_iterator func_it = functions_.begin(); - func_it != functions_.end(); ++func_it) { - Function *func = *func_it; - for (vector::iterator line_it = func->lines.begin(); - line_it != func->lines.end(); ++line_it) - line_it->file->source_id = 0; - } - - // Finally, assign source ids to those files that have been marked. - // We could have just assigned source id numbers while traversing - // the line numbers, but doing it this way numbers the files in - // lexicographical order by name, which is neat. - int next_source_id = 0; - for (FileByNameMap::iterator file_it = files_.begin(); - file_it != files_.end(); ++file_it) { - if (!file_it->second->source_id) - file_it->second->source_id = next_source_id++; - } -} - -bool Module::ReportError() { - fprintf(stderr, "error writing symbol file: %s\n", - strerror(errno)); - return false; -} - -bool Module::WriteRuleMap(const RuleMap &rule_map, std::ostream &stream) { - for (RuleMap::const_iterator it = rule_map.begin(); - it != rule_map.end(); ++it) { - if (it != rule_map.begin()) - stream << ' '; - stream << it->first << ": " << it->second; - } - return stream.good(); -} - -bool Module::Write(std::ostream &stream, SymbolData symbol_data) { - stream << "MODULE " << os_ << " " << architecture_ << " " - << id_ << " " << name_ << endl; - if (!stream.good()) - return ReportError(); - - if (symbol_data != ONLY_CFI) { - AssignSourceIds(); - - // Write out files. - for (FileByNameMap::iterator file_it = files_.begin(); - file_it != files_.end(); ++file_it) { - File *file = file_it->second; - if (file->source_id >= 0) { - stream << "FILE " << file->source_id << " " << file->name << endl; - if (!stream.good()) - return ReportError(); - } - } - - // Write out functions and their lines. - for (FunctionSet::const_iterator func_it = functions_.begin(); - func_it != functions_.end(); ++func_it) { - Function *func = *func_it; - stream << "FUNC " << hex - << (func->address - load_address_) << " " - << func->size << " " - << func->parameter_size << " " - << func->name << dec << endl; - if (!stream.good()) - return ReportError(); - - for (vector::iterator line_it = func->lines.begin(); - line_it != func->lines.end(); ++line_it) { - stream << hex - << (line_it->address - load_address_) << " " - << line_it->size << " " - << dec - << line_it->number << " " - << line_it->file->source_id << endl; - if (!stream.good()) - return ReportError(); - } - } - - // Write out 'PUBLIC' records. - for (ExternSet::const_iterator extern_it = externs_.begin(); - extern_it != externs_.end(); ++extern_it) { - Extern *ext = *extern_it; - stream << "PUBLIC " << hex - << (ext->address - load_address_) << " 0 " - << ext->name << dec << endl; - } - } - - if (symbol_data != NO_CFI) { - // Write out 'STACK CFI INIT' and 'STACK CFI' records. - vector::const_iterator frame_it; - for (frame_it = stack_frame_entries_.begin(); - frame_it != stack_frame_entries_.end(); ++frame_it) { - StackFrameEntry *entry = *frame_it; - stream << "STACK CFI INIT " << hex - << (entry->address - load_address_) << " " - << entry->size << " " << dec; - if (!stream.good() - || !WriteRuleMap(entry->initial_rules, stream)) - return ReportError(); - - stream << endl; - - // Write out this entry's delta rules as 'STACK CFI' records. - for (RuleChangeMap::const_iterator delta_it = entry->rule_changes.begin(); - delta_it != entry->rule_changes.end(); ++delta_it) { - stream << "STACK CFI " << hex - << (delta_it->first - load_address_) << " " << dec; - if (!stream.good() - || !WriteRuleMap(delta_it->second, stream)) - return ReportError(); - - stream << endl; - } - } - } - - return true; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/module.h b/sources/google-breakpad/src/common/module.h deleted file mode 100644 index 65b5595d..00000000 --- a/sources/google-breakpad/src/common/module.h +++ /dev/null @@ -1,336 +0,0 @@ -// -*- mode: c++ -*- - -// Copyright (c) 2010 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Original author: Jim Blandy - -// module.h: Define google_breakpad::Module. A Module holds debugging -// information, and can write that information out as a Breakpad -// symbol file. - -#ifndef COMMON_LINUX_MODULE_H__ -#define COMMON_LINUX_MODULE_H__ - -#include -#include -#include -#include -#include - -#include "common/symbol_data.h" -#include "common/using_std_string.h" -#include "google_breakpad/common/breakpad_types.h" - -namespace google_breakpad { - -using std::set; -using std::vector; -using std::map; - -// A Module represents the contents of a module, and supports methods -// for adding information produced by parsing STABS or DWARF data -// --- possibly both from the same file --- and then writing out the -// unified contents as a Breakpad-format symbol file. -class Module { - public: - // The type of addresses and sizes in a symbol table. - typedef uint64_t Address; - struct File; - struct Function; - struct Line; - struct Extern; - - // Addresses appearing in File, Function, and Line structures are - // absolute, not relative to the the module's load address. That - // is, if the module were loaded at its nominal load address, the - // addresses would be correct. - - // A source file. - struct File { - explicit File(const string &name_input) : name(name_input), source_id(0) {} - - // The name of the source file. - const string name; - - // The file's source id. The Write member function clears this - // field and assigns source ids a fresh, so any value placed here - // before calling Write will be lost. - int source_id; - }; - - // A function. - struct Function { - Function(const string &name_input, const Address &address_input) : - name(name_input), address(address_input), size(0), parameter_size(0) {} - - // For sorting by address. (Not style-guide compliant, but it's - // stupid not to put this in the struct.) - static bool CompareByAddress(const Function *x, const Function *y) { - return x->address < y->address; - } - - // The function's name. - const string name; - - // The start address and length of the function's code. - const Address address; - Address size; - - // The function's parameter size. - Address parameter_size; - - // Source lines belonging to this function, sorted by increasing - // address. - vector lines; - }; - - // A source line. - struct Line { - // For sorting by address. (Not style-guide compliant, but it's - // stupid not to put this in the struct.) - static bool CompareByAddress(const Module::Line &x, const Module::Line &y) { - return x.address < y.address; - } - - Address address, size; // The address and size of the line's code. - File *file; // The source file. - int number; // The source line number. - }; - - // An exported symbol. - struct Extern { - explicit Extern(const Address &address_input) : address(address_input) {} - const Address address; - string name; - }; - - // A map from register names to postfix expressions that recover - // their their values. This can represent a complete set of rules to - // follow at some address, or a set of changes to be applied to an - // extant set of rules. - typedef map RuleMap; - - // A map from addresses to RuleMaps, representing changes that take - // effect at given addresses. - typedef map RuleChangeMap; - - // A range of 'STACK CFI' stack walking information. An instance of - // this structure corresponds to a 'STACK CFI INIT' record and the - // subsequent 'STACK CFI' records that fall within its range. - struct StackFrameEntry { - // The starting address and number of bytes of machine code this - // entry covers. - Address address, size; - - // The initial register recovery rules, in force at the starting - // address. - RuleMap initial_rules; - - // A map from addresses to rule changes. To find the rules in - // force at a given address, start with initial_rules, and then - // apply the changes given in this map for all addresses up to and - // including the address you're interested in. - RuleChangeMap rule_changes; - }; - - struct FunctionCompare { - bool operator() (const Function *lhs, - const Function *rhs) const { - if (lhs->address == rhs->address) - return lhs->name < rhs->name; - return lhs->address < rhs->address; - } - }; - - struct ExternCompare { - bool operator() (const Extern *lhs, - const Extern *rhs) const { - return lhs->address < rhs->address; - } - }; - - // Create a new module with the given name, operating system, - // architecture, and ID string. - Module(const string &name, const string &os, const string &architecture, - const string &id); - ~Module(); - - // Set the module's load address to LOAD_ADDRESS; addresses given - // for functions and lines will be written to the Breakpad symbol - // file as offsets from this address. Construction initializes this - // module's load address to zero: addresses written to the symbol - // file will be the same as they appear in the Function, Line, and - // StackFrameEntry structures. - // - // Note that this member function has no effect on addresses stored - // in the data added to this module; the Write member function - // simply subtracts off the load address from addresses before it - // prints them. Only the last load address given before calling - // Write is used. - void SetLoadAddress(Address load_address); - - // Add FUNCTION to the module. FUNCTION's name must not be empty. - // This module owns all Function objects added with this function: - // destroying the module destroys them as well. - void AddFunction(Function *function); - - // Add all the functions in [BEGIN,END) to the module. - // This module owns all Function objects added with this function: - // destroying the module destroys them as well. - void AddFunctions(vector::iterator begin, - vector::iterator end); - - // Add STACK_FRAME_ENTRY to the module. - // This module owns all StackFrameEntry objects added with this - // function: destroying the module destroys them as well. - void AddStackFrameEntry(StackFrameEntry *stack_frame_entry); - - // Add PUBLIC to the module. - // This module owns all Extern objects added with this function: - // destroying the module destroys them as well. - void AddExtern(Extern *ext); - - // If this module has a file named NAME, return a pointer to it. If - // it has none, then create one and return a pointer to the new - // file. This module owns all File objects created using these - // functions; destroying the module destroys them as well. - File *FindFile(const string &name); - File *FindFile(const char *name); - - // If this module has a file named NAME, return a pointer to it. - // Otherwise, return NULL. - File *FindExistingFile(const string &name); - - // Insert pointers to the functions added to this module at I in - // VEC. The pointed-to Functions are still owned by this module. - // (Since this is effectively a copy of the function list, this is - // mostly useful for testing; other uses should probably get a more - // appropriate interface.) - void GetFunctions(vector *vec, vector::iterator i); - - // Insert pointers to the externs added to this module at I in - // VEC. The pointed-to Externs are still owned by this module. - // (Since this is effectively a copy of the extern list, this is - // mostly useful for testing; other uses should probably get a more - // appropriate interface.) - void GetExterns(vector *vec, vector::iterator i); - - // Clear VEC and fill it with pointers to the Files added to this - // module, sorted by name. The pointed-to Files are still owned by - // this module. (Since this is effectively a copy of the file list, - // this is mostly useful for testing; other uses should probably get - // a more appropriate interface.) - void GetFiles(vector *vec); - - // Clear VEC and fill it with pointers to the StackFrameEntry - // objects that have been added to this module. (Since this is - // effectively a copy of the stack frame entry list, this is mostly - // useful for testing; other uses should probably get - // a more appropriate interface.) - void GetStackFrameEntries(vector *vec) const; - - // Find those files in this module that are actually referred to by - // functions' line number data, and assign them source id numbers. - // Set the source id numbers for all other files --- unused by the - // source line data --- to -1. We do this before writing out the - // symbol file, at which point we omit any unused files. - void AssignSourceIds(); - - // Call AssignSourceIds, and write this module to STREAM in the - // breakpad symbol format. Return true if all goes well, or false if - // an error occurs. This method writes out: - // - a header based on the values given to the constructor, - // If symbol_data is not ONLY_CFI then: - // - the source files added via FindFile, - // - the functions added via AddFunctions, each with its lines, - // - all public records, - // If symbol_data is not NO_CFI then: - // - all CFI records. - // Addresses in the output are all relative to the load address - // established by SetLoadAddress. - bool Write(std::ostream &stream, SymbolData symbol_data); - - string name() const { return name_; } - string os() const { return os_; } - string architecture() const { return architecture_; } - string identifier() const { return id_; } - - private: - // Report an error that has occurred writing the symbol file, using - // errno to find the appropriate cause. Return false. - static bool ReportError(); - - // Write RULE_MAP to STREAM, in the form appropriate for 'STACK CFI' - // records, without a final newline. Return true if all goes well; - // if an error occurs, return false, and leave errno set. - static bool WriteRuleMap(const RuleMap &rule_map, std::ostream &stream); - - // Module header entries. - string name_, os_, architecture_, id_; - - // The module's nominal load address. Addresses for functions and - // lines are absolute, assuming the module is loaded at this - // address. - Address load_address_; - - // Relation for maps whose keys are strings shared with some other - // structure. - struct CompareStringPtrs { - bool operator()(const string *x, const string *y) const { return *x < *y; } - }; - - // A map from filenames to File structures. The map's keys are - // pointers to the Files' names. - typedef map FileByNameMap; - - // A set containing Function structures, sorted by address. - typedef set FunctionSet; - - // A set containing Extern structures, sorted by address. - typedef set ExternSet; - - // The module owns all the files and functions that have been added - // to it; destroying the module frees the Files and Functions these - // point to. - FileByNameMap files_; // This module's source files. - FunctionSet functions_; // This module's functions. - - // The module owns all the call frame info entries that have been - // added to it. - vector stack_frame_entries_; - - // The module owns all the externs that have been added to it; - // destroying the module frees the Externs these point to. - ExternSet externs_; -}; - -} // namespace google_breakpad - -#endif // COMMON_LINUX_MODULE_H__ diff --git a/sources/google-breakpad/src/common/scoped_ptr.h b/sources/google-breakpad/src/common/scoped_ptr.h deleted file mode 100644 index d137c186..00000000 --- a/sources/google-breakpad/src/common/scoped_ptr.h +++ /dev/null @@ -1,404 +0,0 @@ -// Copyright 2013 Google Inc. 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Scopers help you manage ownership of a pointer, helping you easily manage the -// a pointer within a scope, and automatically destroying the pointer at the -// end of a scope. There are two main classes you will use, which correspond -// to the operators new/delete and new[]/delete[]. -// -// Example usage (scoped_ptr): -// { -// scoped_ptr foo(new Foo("wee")); -// } // foo goes out of scope, releasing the pointer with it. -// -// { -// scoped_ptr foo; // No pointer managed. -// foo.reset(new Foo("wee")); // Now a pointer is managed. -// foo.reset(new Foo("wee2")); // Foo("wee") was destroyed. -// foo.reset(new Foo("wee3")); // Foo("wee2") was destroyed. -// foo->Method(); // Foo::Method() called. -// foo.get()->Method(); // Foo::Method() called. -// SomeFunc(foo.release()); // SomeFunc takes ownership, foo no longer -// // manages a pointer. -// foo.reset(new Foo("wee4")); // foo manages a pointer again. -// foo.reset(); // Foo("wee4") destroyed, foo no longer -// // manages a pointer. -// } // foo wasn't managing a pointer, so nothing was destroyed. -// -// Example usage (scoped_array): -// { -// scoped_array foo(new Foo[100]); -// foo.get()->Method(); // Foo::Method on the 0th element. -// foo[10].Method(); // Foo::Method on the 10th element. -// } - -#ifndef COMMON_SCOPED_PTR_H_ -#define COMMON_SCOPED_PTR_H_ - -// This is an implementation designed to match the anticipated future TR2 -// implementation of the scoped_ptr class, and its closely-related brethren, -// scoped_array, scoped_ptr_malloc. - -#include -#include -#include - -namespace google_breakpad { - -// A scoped_ptr is like a T*, except that the destructor of scoped_ptr -// automatically deletes the pointer it holds (if any). -// That is, scoped_ptr owns the T object that it points to. -// Like a T*, a scoped_ptr may hold either NULL or a pointer to a T object. -// Also like T*, scoped_ptr is thread-compatible, and once you -// dereference it, you get the threadsafety guarantees of T. -// -// The size of a scoped_ptr is small: -// sizeof(scoped_ptr) == sizeof(C*) -template -class scoped_ptr { - public: - - // The element type - typedef C element_type; - - // Constructor. Defaults to initializing with NULL. - // There is no way to create an uninitialized scoped_ptr. - // The input parameter must be allocated with new. - explicit scoped_ptr(C* p = NULL) : ptr_(p) { } - - // Destructor. If there is a C object, delete it. - // We don't need to test ptr_ == NULL because C++ does that for us. - ~scoped_ptr() { - enum { type_must_be_complete = sizeof(C) }; - delete ptr_; - } - - // Reset. Deletes the current owned object, if any. - // Then takes ownership of a new object, if given. - // this->reset(this->get()) works. - void reset(C* p = NULL) { - if (p != ptr_) { - enum { type_must_be_complete = sizeof(C) }; - delete ptr_; - ptr_ = p; - } - } - - // Accessors to get the owned object. - // operator* and operator-> will assert() if there is no current object. - C& operator*() const { - assert(ptr_ != NULL); - return *ptr_; - } - C* operator->() const { - assert(ptr_ != NULL); - return ptr_; - } - C* get() const { return ptr_; } - - // Comparison operators. - // These return whether two scoped_ptr refer to the same object, not just to - // two different but equal objects. - bool operator==(C* p) const { return ptr_ == p; } - bool operator!=(C* p) const { return ptr_ != p; } - - // Swap two scoped pointers. - void swap(scoped_ptr& p2) { - C* tmp = ptr_; - ptr_ = p2.ptr_; - p2.ptr_ = tmp; - } - - // Release a pointer. - // The return value is the current pointer held by this object. - // If this object holds a NULL pointer, the return value is NULL. - // After this operation, this object will hold a NULL pointer, - // and will not own the object any more. - C* release() { - C* retVal = ptr_; - ptr_ = NULL; - return retVal; - } - - private: - C* ptr_; - - // Forbid comparison of scoped_ptr types. If C2 != C, it totally doesn't - // make sense, and if C2 == C, it still doesn't make sense because you should - // never have the same object owned by two different scoped_ptrs. - template bool operator==(scoped_ptr const& p2) const; - template bool operator!=(scoped_ptr const& p2) const; - - // Disallow evil constructors - scoped_ptr(const scoped_ptr&); - void operator=(const scoped_ptr&); -}; - -// Free functions -template -void swap(scoped_ptr& p1, scoped_ptr& p2) { - p1.swap(p2); -} - -template -bool operator==(C* p1, const scoped_ptr& p2) { - return p1 == p2.get(); -} - -template -bool operator!=(C* p1, const scoped_ptr& p2) { - return p1 != p2.get(); -} - -// scoped_array is like scoped_ptr, except that the caller must allocate -// with new [] and the destructor deletes objects with delete []. -// -// As with scoped_ptr, a scoped_array either points to an object -// or is NULL. A scoped_array owns the object that it points to. -// scoped_array is thread-compatible, and once you index into it, -// the returned objects have only the threadsafety guarantees of T. -// -// Size: sizeof(scoped_array) == sizeof(C*) -template -class scoped_array { - public: - - // The element type - typedef C element_type; - - // Constructor. Defaults to intializing with NULL. - // There is no way to create an uninitialized scoped_array. - // The input parameter must be allocated with new []. - explicit scoped_array(C* p = NULL) : array_(p) { } - - // Destructor. If there is a C object, delete it. - // We don't need to test ptr_ == NULL because C++ does that for us. - ~scoped_array() { - enum { type_must_be_complete = sizeof(C) }; - delete[] array_; - } - - // Reset. Deletes the current owned object, if any. - // Then takes ownership of a new object, if given. - // this->reset(this->get()) works. - void reset(C* p = NULL) { - if (p != array_) { - enum { type_must_be_complete = sizeof(C) }; - delete[] array_; - array_ = p; - } - } - - // Get one element of the current object. - // Will assert() if there is no current object, or index i is negative. - C& operator[](ptrdiff_t i) const { - assert(i >= 0); - assert(array_ != NULL); - return array_[i]; - } - - // Get a pointer to the zeroth element of the current object. - // If there is no current object, return NULL. - C* get() const { - return array_; - } - - // Comparison operators. - // These return whether two scoped_array refer to the same object, not just to - // two different but equal objects. - bool operator==(C* p) const { return array_ == p; } - bool operator!=(C* p) const { return array_ != p; } - - // Swap two scoped arrays. - void swap(scoped_array& p2) { - C* tmp = array_; - array_ = p2.array_; - p2.array_ = tmp; - } - - // Release an array. - // The return value is the current pointer held by this object. - // If this object holds a NULL pointer, the return value is NULL. - // After this operation, this object will hold a NULL pointer, - // and will not own the object any more. - C* release() { - C* retVal = array_; - array_ = NULL; - return retVal; - } - - private: - C* array_; - - // Forbid comparison of different scoped_array types. - template bool operator==(scoped_array const& p2) const; - template bool operator!=(scoped_array const& p2) const; - - // Disallow evil constructors - scoped_array(const scoped_array&); - void operator=(const scoped_array&); -}; - -// Free functions -template -void swap(scoped_array& p1, scoped_array& p2) { - p1.swap(p2); -} - -template -bool operator==(C* p1, const scoped_array& p2) { - return p1 == p2.get(); -} - -template -bool operator!=(C* p1, const scoped_array& p2) { - return p1 != p2.get(); -} - -// This class wraps the c library function free() in a class that can be -// passed as a template argument to scoped_ptr_malloc below. -class ScopedPtrMallocFree { - public: - inline void operator()(void* x) const { - free(x); - } -}; - -// scoped_ptr_malloc<> is similar to scoped_ptr<>, but it accepts a -// second template argument, the functor used to free the object. - -template -class scoped_ptr_malloc { - public: - - // The element type - typedef C element_type; - - // Constructor. Defaults to initializing with NULL. - // There is no way to create an uninitialized scoped_ptr. - // The input parameter must be allocated with an allocator that matches the - // Free functor. For the default Free functor, this is malloc, calloc, or - // realloc. - explicit scoped_ptr_malloc(C* p = NULL): ptr_(p) {} - - // Destructor. If there is a C object, call the Free functor. - ~scoped_ptr_malloc() { - reset(); - } - - // Reset. Calls the Free functor on the current owned object, if any. - // Then takes ownership of a new object, if given. - // this->reset(this->get()) works. - void reset(C* p = NULL) { - if (ptr_ != p) { - FreeProc free_proc; - free_proc(ptr_); - ptr_ = p; - } - } - - // Get the current object. - // operator* and operator-> will cause an assert() failure if there is - // no current object. - C& operator*() const { - assert(ptr_ != NULL); - return *ptr_; - } - - C* operator->() const { - assert(ptr_ != NULL); - return ptr_; - } - - C* get() const { - return ptr_; - } - - // Comparison operators. - // These return whether a scoped_ptr_malloc and a plain pointer refer - // to the same object, not just to two different but equal objects. - // For compatibility with the boost-derived implementation, these - // take non-const arguments. - bool operator==(C* p) const { - return ptr_ == p; - } - - bool operator!=(C* p) const { - return ptr_ != p; - } - - // Swap two scoped pointers. - void swap(scoped_ptr_malloc & b) { - C* tmp = b.ptr_; - b.ptr_ = ptr_; - ptr_ = tmp; - } - - // Release a pointer. - // The return value is the current pointer held by this object. - // If this object holds a NULL pointer, the return value is NULL. - // After this operation, this object will hold a NULL pointer, - // and will not own the object any more. - C* release() { - C* tmp = ptr_; - ptr_ = NULL; - return tmp; - } - - private: - C* ptr_; - - // no reason to use these: each scoped_ptr_malloc should have its own object - template - bool operator==(scoped_ptr_malloc const& p) const; - template - bool operator!=(scoped_ptr_malloc const& p) const; - - // Disallow evil constructors - scoped_ptr_malloc(const scoped_ptr_malloc&); - void operator=(const scoped_ptr_malloc&); -}; - -template inline -void swap(scoped_ptr_malloc& a, scoped_ptr_malloc& b) { - a.swap(b); -} - -template inline -bool operator==(C* p, const scoped_ptr_malloc& b) { - return p == b.get(); -} - -template inline -bool operator!=(C* p, const scoped_ptr_malloc& b) { - return p != b.get(); -} - -} // namespace google_breakpad - -#endif // COMMON_SCOPED_PTR_H_ diff --git a/sources/google-breakpad/src/common/string_conversion.cc b/sources/google-breakpad/src/common/string_conversion.cc deleted file mode 100644 index 9c0d623f..00000000 --- a/sources/google-breakpad/src/common/string_conversion.cc +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#include - -#include "common/convert_UTF.h" -#include "common/scoped_ptr.h" -#include "common/string_conversion.h" -#include "common/using_std_string.h" - -namespace google_breakpad { - -using std::vector; - -void UTF8ToUTF16(const char *in, vector *out) { - size_t source_length = strlen(in); - const UTF8 *source_ptr = reinterpret_cast(in); - const UTF8 *source_end_ptr = source_ptr + source_length; - // Erase the contents and zero fill to the expected size - out->clear(); - out->insert(out->begin(), source_length, 0); - uint16_t *target_ptr = &(*out)[0]; - uint16_t *target_end_ptr = target_ptr + out->capacity() * sizeof(uint16_t); - ConversionResult result = ConvertUTF8toUTF16(&source_ptr, source_end_ptr, - &target_ptr, target_end_ptr, - strictConversion); - - // Resize to be the size of the # of converted characters + NULL - out->resize(result == conversionOK ? target_ptr - &(*out)[0] + 1: 0); -} - -int UTF8ToUTF16Char(const char *in, int in_length, uint16_t out[2]) { - const UTF8 *source_ptr = reinterpret_cast(in); - const UTF8 *source_end_ptr = source_ptr + sizeof(char); - uint16_t *target_ptr = out; - uint16_t *target_end_ptr = target_ptr + 2 * sizeof(uint16_t); - out[0] = out[1] = 0; - - // Process one character at a time - while (1) { - ConversionResult result = ConvertUTF8toUTF16(&source_ptr, source_end_ptr, - &target_ptr, target_end_ptr, - strictConversion); - - if (result == conversionOK) - return static_cast(source_ptr - reinterpret_cast(in)); - - // Add another character to the input stream and try again - source_ptr = reinterpret_cast(in); - ++source_end_ptr; - - if (source_end_ptr > reinterpret_cast(in) + in_length) - break; - } - - return 0; -} - -void UTF32ToUTF16(const wchar_t *in, vector *out) { - size_t source_length = wcslen(in); - const UTF32 *source_ptr = reinterpret_cast(in); - const UTF32 *source_end_ptr = source_ptr + source_length; - // Erase the contents and zero fill to the expected size - out->clear(); - out->insert(out->begin(), source_length, 0); - uint16_t *target_ptr = &(*out)[0]; - uint16_t *target_end_ptr = target_ptr + out->capacity() * sizeof(uint16_t); - ConversionResult result = ConvertUTF32toUTF16(&source_ptr, source_end_ptr, - &target_ptr, target_end_ptr, - strictConversion); - - // Resize to be the size of the # of converted characters + NULL - out->resize(result == conversionOK ? target_ptr - &(*out)[0] + 1: 0); -} - -void UTF32ToUTF16Char(wchar_t in, uint16_t out[2]) { - const UTF32 *source_ptr = reinterpret_cast(&in); - const UTF32 *source_end_ptr = source_ptr + 1; - uint16_t *target_ptr = out; - uint16_t *target_end_ptr = target_ptr + 2 * sizeof(uint16_t); - out[0] = out[1] = 0; - ConversionResult result = ConvertUTF32toUTF16(&source_ptr, source_end_ptr, - &target_ptr, target_end_ptr, - strictConversion); - - if (result != conversionOK) { - out[0] = out[1] = 0; - } -} - -static inline uint16_t Swap(uint16_t value) { - return (value >> 8) | static_cast(value << 8); -} - -string UTF16ToUTF8(const vector &in, bool swap) { - const UTF16 *source_ptr = &in[0]; - scoped_array source_buffer; - - // If we're to swap, we need to make a local copy and swap each byte pair - if (swap) { - int idx = 0; - source_buffer.reset(new uint16_t[in.size()]); - UTF16 *source_buffer_ptr = source_buffer.get(); - for (vector::const_iterator it = in.begin(); - it != in.end(); ++it, ++idx) - source_buffer_ptr[idx] = Swap(*it); - - source_ptr = source_buffer.get(); - } - - // The maximum expansion would be 4x the size of the input string. - const UTF16 *source_end_ptr = source_ptr + in.size(); - size_t target_capacity = in.size() * 4; - scoped_array target_buffer(new UTF8[target_capacity]); - UTF8 *target_ptr = target_buffer.get(); - UTF8 *target_end_ptr = target_ptr + target_capacity; - ConversionResult result = ConvertUTF16toUTF8(&source_ptr, source_end_ptr, - &target_ptr, target_end_ptr, - strictConversion); - - if (result == conversionOK) { - const char *targetPtr = reinterpret_cast(target_buffer.get()); - return targetPtr; - } - - return ""; -} - -} // namespace google_breakpad diff --git a/sources/google-breakpad/src/common/string_conversion.h b/sources/google-breakpad/src/common/string_conversion.h deleted file mode 100644 index b9ba96a2..00000000 --- a/sources/google-breakpad/src/common/string_conversion.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// string_conversion.h: Conversion between different UTF-8/16/32 encodings. - -#ifndef COMMON_STRING_CONVERSION_H__ -#define COMMON_STRING_CONVERSION_H__ - -#include -#include - -#include "common/using_std_string.h" -#include "google_breakpad/common/breakpad_types.h" - -namespace google_breakpad { - -using std::vector; - -// Convert |in| to UTF-16 into |out|. Use platform byte ordering. If the -// conversion failed, |out| will be zero length. -void UTF8ToUTF16(const char *in, vector *out); - -// Convert at least one character (up to a maximum of |in_length|) from |in| -// to UTF-16 into |out|. Return the number of characters consumed from |in|. -// Any unused characters in |out| will be initialized to 0. No memory will -// be allocated by this routine. -int UTF8ToUTF16Char(const char *in, int in_length, uint16_t out[2]); - -// Convert |in| to UTF-16 into |out|. Use platform byte ordering. If the -// conversion failed, |out| will be zero length. -void UTF32ToUTF16(const wchar_t *in, vector *out); - -// Convert |in| to UTF-16 into |out|. Any unused characters in |out| will be -// initialized to 0. No memory will be allocated by this routine. -void UTF32ToUTF16Char(wchar_t in, uint16_t out[2]); - -// Convert |in| to UTF-8. If |swap| is true, swap bytes before converting. -string UTF16ToUTF8(const vector &in, bool swap); - -} // namespace google_breakpad - -#endif // COMMON_STRING_CONVERSION_H__ diff --git a/sources/google-breakpad/src/common/symbol_data.h b/sources/google-breakpad/src/common/symbol_data.h deleted file mode 100644 index 2cf15a85..00000000 --- a/sources/google-breakpad/src/common/symbol_data.h +++ /dev/null @@ -1,42 +0,0 @@ -// -*- mode: c++ -*- - -// Copyright (c) 2013 Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -#ifndef COMMON_SYMBOL_DATA_H_ -#define COMMON_SYMBOL_DATA_H_ - -// Control what data is used from the symbol file. -enum SymbolData { - ALL_SYMBOL_DATA, - NO_CFI, - ONLY_CFI -}; - -#endif // COMMON_SYMBOL_DATA_H_ diff --git a/sources/google-breakpad/src/common/using_std_string.h b/sources/google-breakpad/src/common/using_std_string.h deleted file mode 100644 index 13c1da59..00000000 --- a/sources/google-breakpad/src/common/using_std_string.h +++ /dev/null @@ -1,65 +0,0 @@ -// -*- mode: C++ -*- - -// Copyright (c) 2012, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. - -// Original author: Ivan Penkov - -// using_std_string.h: Allows building this code in environments where -// global string (::string) exists. -// -// The problem: -// ------------- -// Let's say you want to build this code in an environment where a global -// string type is defined (i.e. ::string). Now, let's suppose that ::string -// is different that std::string and you'd like to have the option to easily -// choose between the two string types. Ideally you'd like to control which -// string type is chosen by simply #defining an identifier. -// -// The solution: -// ------------- -// #define HAS_GLOBAL_STRING somewhere in a global header file and then -// globally replace std::string with string. Then include this header -// file everywhere where string is used. If you want to revert back to -// using std::string, simply remove the #define (HAS_GLOBAL_STRING). - -#ifndef THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_ -#define THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_ - -#ifdef HAS_GLOBAL_STRING - typedef ::string google_breakpad_string; -#else - using std::string; - typedef std::string google_breakpad_string; -#endif - -// Inicates that type google_breakpad_string is defined -#define HAS_GOOGLE_BREAKPAD_STRING - -#endif // THIRD_PARTY_BREAKPAD_SRC_COMMON_USING_STD_STRING_H_ diff --git a/sources/google-breakpad/src/config.h.in b/sources/google-breakpad/src/config.h.in deleted file mode 100644 index 1db01593..00000000 --- a/sources/google-breakpad/src/config.h.in +++ /dev/null @@ -1,76 +0,0 @@ -/* src/config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_A_OUT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define if you have POSIX threads libraries and header files. */ -#undef HAVE_PTHREAD - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to necessary symbol if this constant uses a non-standard name on - your system. */ -#undef PTHREAD_CREATE_JOINABLE - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Enable large inode numbers on Mac OS X 10.5. */ -#ifndef _DARWIN_USE_64_BIT_INODE -# define _DARWIN_USE_64_BIT_INODE 1 -#endif - -/* Number of bits in a file offset, on hosts where this is settable. */ -#undef _FILE_OFFSET_BITS - -/* Define for large files, on AIX-style hosts. */ -#undef _LARGE_FILES diff --git a/sources/google-breakpad/src/google_breakpad/common/breakpad_types.h b/sources/google-breakpad/src/google_breakpad/common/breakpad_types.h deleted file mode 100644 index d8828043..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/breakpad_types.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* breakpad_types.h: Precise-width types - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file ensures that types uintN_t are defined for N = 8, 16, 32, and - * 64. Types of precise widths are crucial to the task of writing data - * structures on one platform and reading them on another. - * - * Author: Mark Mentovai */ - -#ifndef GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ -#define GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ - -#if (defined(_INTTYPES_H) || defined(_INTTYPES_H_)) && \ - !defined(__STDC_FORMAT_MACROS) -#error "inttypes.h has already been included before this header file, but " -#error "without __STDC_FORMAT_MACROS defined." -#endif - -#ifndef __STDC_FORMAT_MACROS -#define __STDC_FORMAT_MACROS -#endif /* __STDC_FORMAT_MACROS */ -#include - -typedef struct { - uint64_t high; - uint64_t low; -} uint128_struct; - -typedef uint64_t breakpad_time_t; - -/* Try to get PRIx64 from inttypes.h, but if it's not defined, fall back to - * llx, which is the format string for "long long" - this is a 64-bit - * integral type on many systems. */ -#ifndef PRIx64 -#define PRIx64 "llx" -#endif /* !PRIx64 */ - -#endif /* GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h deleted file mode 100644 index 4256706d..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h +++ /dev/null @@ -1,235 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on amd64. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by ensuring - * ensuring that all members are aligned on their natural boundaries. In - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Mark Mentovai - * Change to split into its own file: Neal Sidhwaney */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ - - -/* - * AMD64 support, see WINNT.H - */ - -typedef struct { - uint16_t control_word; - uint16_t status_word; - uint8_t tag_word; - uint8_t reserved1; - uint16_t error_opcode; - uint32_t error_offset; - uint16_t error_selector; - uint16_t reserved2; - uint32_t data_offset; - uint16_t data_selector; - uint16_t reserved3; - uint32_t mx_csr; - uint32_t mx_csr_mask; - uint128_struct float_registers[8]; - uint128_struct xmm_registers[16]; - uint8_t reserved4[96]; -} MDXmmSaveArea32AMD64; /* XMM_SAVE_AREA32 */ - -#define MD_CONTEXT_AMD64_VR_COUNT 26 - -typedef struct { - /* - * Register parameter home addresses. - */ - uint64_t p1_home; - uint64_t p2_home; - uint64_t p3_home; - uint64_t p4_home; - uint64_t p5_home; - uint64_t p6_home; - - /* The next field determines the layout of the structure, and which parts - * of it are populated */ - uint32_t context_flags; - uint32_t mx_csr; - - /* The next register is included with MD_CONTEXT_AMD64_CONTROL */ - uint16_t cs; - - /* The next 4 registers are included with MD_CONTEXT_AMD64_SEGMENTS */ - uint16_t ds; - uint16_t es; - uint16_t fs; - uint16_t gs; - - /* The next 2 registers are included with MD_CONTEXT_AMD64_CONTROL */ - uint16_t ss; - uint32_t eflags; - - /* The next 6 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */ - uint64_t dr0; - uint64_t dr1; - uint64_t dr2; - uint64_t dr3; - uint64_t dr6; - uint64_t dr7; - - /* The next 4 registers are included with MD_CONTEXT_AMD64_INTEGER */ - uint64_t rax; - uint64_t rcx; - uint64_t rdx; - uint64_t rbx; - - /* The next register is included with MD_CONTEXT_AMD64_CONTROL */ - uint64_t rsp; - - /* The next 11 registers are included with MD_CONTEXT_AMD64_INTEGER */ - uint64_t rbp; - uint64_t rsi; - uint64_t rdi; - uint64_t r8; - uint64_t r9; - uint64_t r10; - uint64_t r11; - uint64_t r12; - uint64_t r13; - uint64_t r14; - uint64_t r15; - - /* The next register is included with MD_CONTEXT_AMD64_CONTROL */ - uint64_t rip; - - /* The next set of registers are included with - * MD_CONTEXT_AMD64_FLOATING_POINT - */ - union { - MDXmmSaveArea32AMD64 flt_save; - struct { - uint128_struct header[2]; - uint128_struct legacy[8]; - uint128_struct xmm0; - uint128_struct xmm1; - uint128_struct xmm2; - uint128_struct xmm3; - uint128_struct xmm4; - uint128_struct xmm5; - uint128_struct xmm6; - uint128_struct xmm7; - uint128_struct xmm8; - uint128_struct xmm9; - uint128_struct xmm10; - uint128_struct xmm11; - uint128_struct xmm12; - uint128_struct xmm13; - uint128_struct xmm14; - uint128_struct xmm15; - } sse_registers; - }; - - uint128_struct vector_register[MD_CONTEXT_AMD64_VR_COUNT]; - uint64_t vector_control; - - /* The next 5 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */ - uint64_t debug_control; - uint64_t last_branch_to_rip; - uint64_t last_branch_from_rip; - uint64_t last_exception_to_rip; - uint64_t last_exception_from_rip; - -} MDRawContextAMD64; /* CONTEXT */ - -/* For (MDRawContextAMD64).context_flags. These values indicate the type of - * context stored in the structure. The high 24 bits identify the CPU, the - * low 8 bits identify the type of context saved. */ -#define MD_CONTEXT_AMD64 0x00100000 /* CONTEXT_AMD64 */ -#define MD_CONTEXT_AMD64_CONTROL (MD_CONTEXT_AMD64 | 0x00000001) - /* CONTEXT_CONTROL */ -#define MD_CONTEXT_AMD64_INTEGER (MD_CONTEXT_AMD64 | 0x00000002) - /* CONTEXT_INTEGER */ -#define MD_CONTEXT_AMD64_SEGMENTS (MD_CONTEXT_AMD64 | 0x00000004) - /* CONTEXT_SEGMENTS */ -#define MD_CONTEXT_AMD64_FLOATING_POINT (MD_CONTEXT_AMD64 | 0x00000008) - /* CONTEXT_FLOATING_POINT */ -#define MD_CONTEXT_AMD64_DEBUG_REGISTERS (MD_CONTEXT_AMD64 | 0x00000010) - /* CONTEXT_DEBUG_REGISTERS */ -#define MD_CONTEXT_AMD64_XSTATE (MD_CONTEXT_AMD64 | 0x00000040) - /* CONTEXT_XSTATE */ - -/* WinNT.h refers to CONTEXT_MMX_REGISTERS but doesn't appear to define it - * I think it really means CONTEXT_FLOATING_POINT. - */ - -#define MD_CONTEXT_AMD64_FULL (MD_CONTEXT_AMD64_CONTROL | \ - MD_CONTEXT_AMD64_INTEGER | \ - MD_CONTEXT_AMD64_FLOATING_POINT) - /* CONTEXT_FULL */ - -#define MD_CONTEXT_AMD64_ALL (MD_CONTEXT_AMD64_FULL | \ - MD_CONTEXT_AMD64_SEGMENTS | \ - MD_CONTEXT_X86_DEBUG_REGISTERS) - /* CONTEXT_ALL */ - - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h deleted file mode 100644 index 6a711383..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h +++ /dev/null @@ -1,151 +0,0 @@ -/* Copyright (c) 2009, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on ARM. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by - * ensuring that all members are aligned on their natural boundaries. - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. - * - * Author: Julian Seward - */ - -/* - * ARM support - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ - -#define MD_FLOATINGSAVEAREA_ARM_FPR_COUNT 32 -#define MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT 8 - -/* - * Note that these structures *do not* map directly to the CONTEXT - * structure defined in WinNT.h in the Windows Mobile SDK. That structure - * does not accomodate VFPv3, and I'm unsure if it was ever used in the - * wild anyway, as Windows CE only seems to produce "cedumps" which - * are not exactly minidumps. - */ -typedef struct { - uint64_t fpscr; /* FPU status register */ - - /* 32 64-bit floating point registers, d0 .. d31. */ - uint64_t regs[MD_FLOATINGSAVEAREA_ARM_FPR_COUNT]; - - /* Miscellaneous control words */ - uint32_t extra[MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT]; -} MDFloatingSaveAreaARM; - -#define MD_CONTEXT_ARM_GPR_COUNT 16 - -typedef struct { - /* The next field determines the layout of the structure, and which parts - * of it are populated - */ - uint32_t context_flags; - - /* 16 32-bit integer registers, r0 .. r15 - * Note the following fixed uses: - * r13 is the stack pointer - * r14 is the link register - * r15 is the program counter - */ - uint32_t iregs[MD_CONTEXT_ARM_GPR_COUNT]; - - /* CPSR (flags, basically): 32 bits: - bit 31 - N (negative) - bit 30 - Z (zero) - bit 29 - C (carry) - bit 28 - V (overflow) - bit 27 - Q (saturation flag, sticky) - All other fields -- ignore */ - uint32_t cpsr; - - /* The next field is included with MD_CONTEXT_ARM_FLOATING_POINT */ - MDFloatingSaveAreaARM float_save; - -} MDRawContextARM; - -/* Indices into iregs for registers with a dedicated or conventional - * purpose. - */ -enum MDARMRegisterNumbers { - MD_CONTEXT_ARM_REG_IOS_FP = 7, - MD_CONTEXT_ARM_REG_FP = 11, - MD_CONTEXT_ARM_REG_SP = 13, - MD_CONTEXT_ARM_REG_LR = 14, - MD_CONTEXT_ARM_REG_PC = 15 -}; - -/* For (MDRawContextARM).context_flags. These values indicate the type of - * context stored in the structure. */ -/* CONTEXT_ARM from the Windows CE 5.0 SDK. This value isn't correct - * because this bit can be used for flags. Presumably this value was - * never actually used in minidumps, but only in "CEDumps" which - * are a whole parallel minidump file format for Windows CE. - * Therefore, Breakpad defines its own value for ARM CPUs. - */ -#define MD_CONTEXT_ARM_OLD 0x00000040 -/* This value was chosen to avoid likely conflicts with MD_CONTEXT_* - * for other CPUs. */ -#define MD_CONTEXT_ARM 0x40000000 -#define MD_CONTEXT_ARM_INTEGER (MD_CONTEXT_ARM | 0x00000002) -#define MD_CONTEXT_ARM_FLOATING_POINT (MD_CONTEXT_ARM | 0x00000004) - -#define MD_CONTEXT_ARM_FULL (MD_CONTEXT_ARM_INTEGER | \ - MD_CONTEXT_ARM_FLOATING_POINT) - -#define MD_CONTEXT_ARM_ALL (MD_CONTEXT_ARM_INTEGER | \ - MD_CONTEXT_ARM_FLOATING_POINT) - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h deleted file mode 100644 index 5ace0d9d..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h +++ /dev/null @@ -1,140 +0,0 @@ -/* Copyright 2013 Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on ARM. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by - * ensuring that all members are aligned on their natural boundaries. - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. - * - * Author: Colin Blundell - */ - -/* - * ARM64 support - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ - -#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32 - -typedef struct { - uint32_t fpsr; /* FPU status register */ - uint32_t fpcr; /* FPU control register */ - - /* 32 128-bit floating point registers, d0 .. d31. */ - uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT]; -} MDFloatingSaveAreaARM64; - -#define MD_CONTEXT_ARM64_GPR_COUNT 33 - -/* Use the same 32-bit alignment when accessing this structure from 64-bit code - * as is used natively in 32-bit code. */ -#pragma pack(push, 4) - -typedef struct { - /* The next field determines the layout of the structure, and which parts - * of it are populated - */ - uint64_t context_flags; - - /* 33 64-bit integer registers, x0 .. x31 + the PC - * Note the following fixed uses: - * x29 is the frame pointer - * x30 is the link register - * x31 is the stack pointer - * The PC is effectively x32. - */ - uint64_t iregs[MD_CONTEXT_ARM64_GPR_COUNT]; - - /* CPSR (flags, basically): 32 bits: - bit 31 - N (negative) - bit 30 - Z (zero) - bit 29 - C (carry) - bit 28 - V (overflow) - bit 27 - Q (saturation flag, sticky) - All other fields -- ignore */ - uint32_t cpsr; - - /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */ - MDFloatingSaveAreaARM64 float_save; - -} MDRawContextARM64; - -#pragma pack(pop) - -/* Indices into iregs for registers with a dedicated or conventional - * purpose. - */ -enum MDARM64RegisterNumbers { - MD_CONTEXT_ARM64_REG_FP = 29, - MD_CONTEXT_ARM64_REG_LR = 30, - MD_CONTEXT_ARM64_REG_SP = 31, - MD_CONTEXT_ARM64_REG_PC = 32 -}; - -/* For (MDRawContextARM64).context_flags. These values indicate the type of - * context stored in the structure. MD_CONTEXT_ARM64 is Breakpad-defined. - * This value was chosen to avoid likely conflicts with MD_CONTEXT_* - * for other CPUs. */ -#define MD_CONTEXT_ARM64 0x80000000 -#define MD_CONTEXT_ARM64_INTEGER (MD_CONTEXT_ARM64 | 0x00000002) -#define MD_CONTEXT_ARM64_FLOATING_POINT (MD_CONTEXT_ARM64 | 0x00000004) - -#define MD_CONTEXT_ARM64_FULL (MD_CONTEXT_ARM64_INTEGER | \ - MD_CONTEXT_ARM64_FLOATING_POINT) - -#define MD_CONTEXT_ARM64_ALL (MD_CONTEXT_ARM64_INTEGER | \ - MD_CONTEXT_ARM64_FLOATING_POINT) - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h deleted file mode 100644 index f4e2b589..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h +++ /dev/null @@ -1,176 +0,0 @@ -/* Copyright (c) 2013, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on MIPS. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by - * ensuring that all members are aligned on their natural boundaries. - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. - * - * Author: Chris Dearman - */ - -/* - * MIPS support - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__ - -#define MD_CONTEXT_MIPS_GPR_COUNT 32 -#define MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT 32 -#define MD_CONTEXT_MIPS_DSP_COUNT 3 - -/* - * Note that these structures *do not* map directly to the CONTEXT - * structure defined in WinNT.h in the Windows Mobile SDK. That structure - * does not accomodate VFPv3, and I'm unsure if it was ever used in the - * wild anyway, as Windows CE only seems to produce "cedumps" which - * are not exactly minidumps. - */ -typedef struct { - /* 32 64-bit floating point registers, f0..f31 */ - uint64_t regs[MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT]; - - uint32_t fpcsr; /* FPU status register. */ - uint32_t fir; /* FPU implementation register. */ -} MDFloatingSaveAreaMIPS; - -typedef struct { - /* The next field determines the layout of the structure, and which parts - * of it are populated. - */ - uint32_t context_flags; - uint32_t _pad0; - - /* 32 64-bit integer registers, r0..r31. - * Note the following fixed uses: - * r29 is the stack pointer. - * r31 is the return address. - */ - uint64_t iregs[MD_CONTEXT_MIPS_GPR_COUNT]; - - /* multiply/divide result. */ - uint64_t mdhi, mdlo; - - /* DSP accumulators. */ - uint32_t hi[MD_CONTEXT_MIPS_DSP_COUNT]; - uint32_t lo[MD_CONTEXT_MIPS_DSP_COUNT]; - uint32_t dsp_control; - uint32_t _pad1; - - uint64_t epc; - uint64_t badvaddr; - uint32_t status; - uint32_t cause; - - /* The next field is included with MD_CONTEXT_MIPS_FLOATING_POINT. */ - MDFloatingSaveAreaMIPS float_save; - -} MDRawContextMIPS; - -/* Indices into iregs for registers with a dedicated or conventional - * purpose. - */ -enum MDMIPSRegisterNumbers { - MD_CONTEXT_MIPS_REG_S0 = 16, - MD_CONTEXT_MIPS_REG_S1 = 17, - MD_CONTEXT_MIPS_REG_S2 = 18, - MD_CONTEXT_MIPS_REG_S3 = 19, - MD_CONTEXT_MIPS_REG_S4 = 20, - MD_CONTEXT_MIPS_REG_S5 = 21, - MD_CONTEXT_MIPS_REG_S6 = 22, - MD_CONTEXT_MIPS_REG_S7 = 23, - MD_CONTEXT_MIPS_REG_GP = 28, - MD_CONTEXT_MIPS_REG_SP = 29, - MD_CONTEXT_MIPS_REG_FP = 30, - MD_CONTEXT_MIPS_REG_RA = 31, -}; - -/* For (MDRawContextMIPS).context_flags. These values indicate the type of - * context stored in the structure. */ -/* CONTEXT_MIPS from the Windows CE 5.0 SDK. This value isn't correct - * because this bit can be used for flags. Presumably this value was - * never actually used in minidumps, but only in "CEDumps" which - * are a whole parallel minidump file format for Windows CE. - * Therefore, Breakpad defines its own value for MIPS CPUs. - */ -#define MD_CONTEXT_MIPS 0x00040000 -#define MD_CONTEXT_MIPS_INTEGER (MD_CONTEXT_MIPS | 0x00000002) -#define MD_CONTEXT_MIPS_FLOATING_POINT (MD_CONTEXT_MIPS | 0x00000004) -#define MD_CONTEXT_MIPS_DSP (MD_CONTEXT_MIPS | 0x00000008) - -#define MD_CONTEXT_MIPS_FULL (MD_CONTEXT_MIPS_INTEGER | \ - MD_CONTEXT_MIPS_FLOATING_POINT | \ - MD_CONTEXT_MIPS_DSP) - -#define MD_CONTEXT_MIPS_ALL (MD_CONTEXT_MIPS_INTEGER | \ - MD_CONTEXT_MIPS_FLOATING_POINT \ - MD_CONTEXT_MIPS_DSP) - -/** - * Breakpad defines for MIPS64 - */ -#define MD_CONTEXT_MIPS64 0x00080000 -#define MD_CONTEXT_MIPS64_INTEGER (MD_CONTEXT_MIPS64 | 0x00000002) -#define MD_CONTEXT_MIPS64_FLOATING_POINT (MD_CONTEXT_MIPS64 | 0x00000004) -#define MD_CONTEXT_MIPS64_DSP (MD_CONTEXT_MIPS64 | 0x00000008) - -#define MD_CONTEXT_MIPS64_FULL (MD_CONTEXT_MIPS64_INTEGER | \ - MD_CONTEXT_MIPS64_FLOATING_POINT | \ - MD_CONTEXT_MIPS64_DSP) - -#define MD_CONTEXT_MIPS64_ALL (MD_CONTEXT_MIPS64_INTEGER | \ - MD_CONTEXT_MIPS64_FLOATING_POINT \ - MD_CONTEXT_MIPS64_DSP) - -#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h deleted file mode 100644 index b24cc424..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on ppc. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by ensuring - * ensuring that all members are aligned on their natural boundaries. In - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Mark Mentovai - * Change to split into its own file: Neal Sidhwaney */ - -/* - * Breakpad minidump extension for PowerPC support. Based on Darwin/Mac OS X' - * mach/ppc/_types.h - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ - -#define MD_FLOATINGSAVEAREA_PPC_FPR_COUNT 32 - -typedef struct { - /* fpregs is a double[32] in mach/ppc/_types.h, but a uint64_t is used - * here for precise sizing. */ - uint64_t fpregs[MD_FLOATINGSAVEAREA_PPC_FPR_COUNT]; - uint32_t fpscr_pad; - uint32_t fpscr; /* Status/control */ -} MDFloatingSaveAreaPPC; /* Based on ppc_float_state */ - - -#define MD_VECTORSAVEAREA_PPC_VR_COUNT 32 - -typedef struct { - /* Vector registers (including vscr) are 128 bits, but mach/ppc/_types.h - * exposes them as four 32-bit quantities. */ - uint128_struct save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT]; - uint128_struct save_vscr; /* Status/control */ - uint32_t save_pad5[4]; - uint32_t save_vrvalid; /* Indicates which vector registers are saved */ - uint32_t save_pad6[7]; -} MDVectorSaveAreaPPC; /* ppc_vector_state */ - - -#define MD_CONTEXT_PPC_GPR_COUNT 32 - -/* Use the same 32-bit alignment when accessing this structure from 64-bit code - * as is used natively in 32-bit code. #pragma pack is a MSVC extension - * supported by gcc. */ -#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#pragma pack(4) -#else -#pragma pack(push, 4) -#endif - -typedef struct { - /* context_flags is not present in ppc_thread_state, but it aids - * identification of MDRawContextPPC among other raw context types, - * and it guarantees alignment when we get to float_save. */ - uint32_t context_flags; - - uint32_t srr0; /* Machine status save/restore: stores pc - * (instruction) */ - uint32_t srr1; /* Machine status save/restore: stores msr - * (ps, program/machine state) */ - /* ppc_thread_state contains 32 fields, r0 .. r31. Here, an array is - * used for brevity. */ - uint32_t gpr[MD_CONTEXT_PPC_GPR_COUNT]; - uint32_t cr; /* Condition */ - uint32_t xer; /* Integer (fiXed-point) exception */ - uint32_t lr; /* Link */ - uint32_t ctr; /* Count */ - uint32_t mq; /* Multiply/Quotient (PPC 601, POWER only) */ - uint32_t vrsave; /* Vector save */ - - /* float_save and vector_save aren't present in ppc_thread_state, but - * are represented in separate structures that still define a thread's - * context. */ - MDFloatingSaveAreaPPC float_save; - MDVectorSaveAreaPPC vector_save; -} MDRawContextPPC; /* Based on ppc_thread_state */ - -/* Indices into gpr for registers with a dedicated or conventional purpose. */ -enum MDPPCRegisterNumbers { - MD_CONTEXT_PPC_REG_SP = 1 -}; - -#if defined(__SUNPRO_C) || defined(__SUNPRO_CC) -#pragma pack(0) -#else -#pragma pack(pop) -#endif - -/* For (MDRawContextPPC).context_flags. These values indicate the type of - * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its - * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other - * CPUs. */ -#define MD_CONTEXT_PPC 0x20000000 -#define MD_CONTEXT_PPC_BASE (MD_CONTEXT_PPC | 0x00000001) -#define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008) -#define MD_CONTEXT_PPC_VECTOR (MD_CONTEXT_PPC | 0x00000020) - -#define MD_CONTEXT_PPC_FULL MD_CONTEXT_PPC_BASE -#define MD_CONTEXT_PPC_ALL (MD_CONTEXT_PPC_FULL | \ - MD_CONTEXT_PPC_FLOATING_POINT | \ - MD_CONTEXT_PPC_VECTOR) - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h deleted file mode 100644 index 61f41938..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h +++ /dev/null @@ -1,134 +0,0 @@ -/* Copyright (c) 2008, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on ppc64. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by ensuring - * ensuring that all members are aligned on their natural boundaries. In - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Neal Sidhwaney */ - - -/* - * Breakpad minidump extension for PPC64 support. Based on Darwin/Mac OS X' - * mach/ppc/_types.h - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ - -#include "minidump_cpu_ppc.h" - -// these types are the same in ppc64 & ppc -typedef MDFloatingSaveAreaPPC MDFloatingSaveAreaPPC64; -typedef MDVectorSaveAreaPPC MDVectorSaveAreaPPC64; - -#define MD_CONTEXT_PPC64_GPR_COUNT MD_CONTEXT_PPC_GPR_COUNT - -typedef struct { - /* context_flags is not present in ppc_thread_state, but it aids - * identification of MDRawContextPPC among other raw context types, - * and it guarantees alignment when we get to float_save. */ - uint64_t context_flags; - - uint64_t srr0; /* Machine status save/restore: stores pc - * (instruction) */ - uint64_t srr1; /* Machine status save/restore: stores msr - * (ps, program/machine state) */ - /* ppc_thread_state contains 32 fields, r0 .. r31. Here, an array is - * used for brevity. */ - uint64_t gpr[MD_CONTEXT_PPC64_GPR_COUNT]; - uint64_t cr; /* Condition */ - uint64_t xer; /* Integer (fiXed-point) exception */ - uint64_t lr; /* Link */ - uint64_t ctr; /* Count */ - uint64_t vrsave; /* Vector save */ - - /* float_save and vector_save aren't present in ppc_thread_state, but - * are represented in separate structures that still define a thread's - * context. */ - MDFloatingSaveAreaPPC float_save; - MDVectorSaveAreaPPC vector_save; -} MDRawContextPPC64; /* Based on ppc_thread_state */ - -/* Indices into gpr for registers with a dedicated or conventional purpose. */ -enum MDPPC64RegisterNumbers { - MD_CONTEXT_PPC64_REG_SP = 1 -}; - -/* For (MDRawContextPPC).context_flags. These values indicate the type of - * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its - * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other - * CPUs. */ -#define MD_CONTEXT_PPC64 0x01000000 -#define MD_CONTEXT_PPC64_BASE (MD_CONTEXT_PPC64 | 0x00000001) -#define MD_CONTEXT_PPC64_FLOATING_POINT (MD_CONTEXT_PPC64 | 0x00000008) -#define MD_CONTEXT_PPC64_VECTOR (MD_CONTEXT_PPC64 | 0x00000020) - -#define MD_CONTEXT_PPC64_FULL MD_CONTEXT_PPC64_BASE -#define MD_CONTEXT_PPC64_ALL (MD_CONTEXT_PPC64_FULL | \ - MD_CONTEXT_PPC64_FLOATING_POINT | \ - MD_CONTEXT_PPC64_VECTOR) - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h deleted file mode 100644 index 95c08b17..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h +++ /dev/null @@ -1,163 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on sparc. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by ensuring - * ensuring that all members are aligned on their natural boundaries. In - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Mark Mentovai - * Change to split into its own file: Neal Sidhwaney */ - -/* - * SPARC support, see (solaris)sys/procfs_isa.h also - */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ - -#define MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT 32 - -typedef struct { - - /* FPU floating point regs */ - uint64_t regs[MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT]; - - uint64_t filler; - uint64_t fsr; /* FPU status register */ -} MDFloatingSaveAreaSPARC; /* FLOATING_SAVE_AREA */ - -#define MD_CONTEXT_SPARC_GPR_COUNT 32 - -typedef struct { - /* The next field determines the layout of the structure, and which parts - * of it are populated - */ - uint32_t context_flags; - uint32_t flag_pad; - /* - * General register access (SPARC). - * Don't confuse definitions here with definitions in . - * Registers are 32 bits for ILP32, 64 bits for LP64. - * SPARC V7/V8 is for 32bit, SPARC V9 is for 64bit - */ - - /* 32 Integer working registers */ - - /* g_r[0-7] global registers(g0-g7) - * g_r[8-15] out registers(o0-o7) - * g_r[16-23] local registers(l0-l7) - * g_r[24-31] in registers(i0-i7) - */ - uint64_t g_r[MD_CONTEXT_SPARC_GPR_COUNT]; - - /* several control registers */ - - /* Processor State register(PSR) for SPARC V7/V8 - * Condition Code register (CCR) for SPARC V9 - */ - uint64_t ccr; - - uint64_t pc; /* Program Counter register (PC) */ - uint64_t npc; /* Next Program Counter register (nPC) */ - uint64_t y; /* Y register (Y) */ - - /* Address Space Identifier register (ASI) for SPARC V9 - * WIM for SPARC V7/V8 - */ - uint64_t asi; - - /* Floating-Point Registers State register (FPRS) for SPARC V9 - * TBR for for SPARC V7/V8 - */ - uint64_t fprs; - - /* The next field is included with MD_CONTEXT_SPARC_FLOATING_POINT */ - MDFloatingSaveAreaSPARC float_save; - -} MDRawContextSPARC; /* CONTEXT_SPARC */ - -/* Indices into g_r for registers with a dedicated or conventional purpose. */ -enum MDSPARCRegisterNumbers { - MD_CONTEXT_SPARC_REG_SP = 14 -}; - -/* For (MDRawContextSPARC).context_flags. These values indicate the type of - * context stored in the structure. MD_CONTEXT_SPARC is Breakpad-defined. Its - * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other - * CPUs. */ -#define MD_CONTEXT_SPARC 0x10000000 -#define MD_CONTEXT_SPARC_CONTROL (MD_CONTEXT_SPARC | 0x00000001) -#define MD_CONTEXT_SPARC_INTEGER (MD_CONTEXT_SPARC | 0x00000002) -#define MD_CONTEXT_SAPARC_FLOATING_POINT (MD_CONTEXT_SPARC | 0x00000004) -#define MD_CONTEXT_SAPARC_EXTRA (MD_CONTEXT_SPARC | 0x00000008) - -#define MD_CONTEXT_SPARC_FULL (MD_CONTEXT_SPARC_CONTROL | \ - MD_CONTEXT_SPARC_INTEGER) - -#define MD_CONTEXT_SPARC_ALL (MD_CONTEXT_SPARC_FULL | \ - MD_CONTEXT_SAPARC_FLOATING_POINT | \ - MD_CONTEXT_SAPARC_EXTRA) - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h b/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h deleted file mode 100644 index e09cb7cb..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h +++ /dev/null @@ -1,174 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * This file contains the necessary definitions to read minidump files - * produced on x86. These files may be read on any platform provided - * that the alignments of these structures on the processing system are - * identical to the alignments of these structures on the producing system. - * For this reason, precise-sized types are used. The structures defined - * by this file have been laid out to minimize alignment problems by ensuring - * ensuring that all members are aligned on their natural boundaries. In - * In some cases, tail-padding may be significant when different ABIs specify - * different tail-padding behaviors. To avoid problems when reading or - * writing affected structures, MD_*_SIZE macros are provided where needed, - * containing the useful size of the structures without padding. - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Mark Mentovai */ - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ - -#define MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE 80 - /* SIZE_OF_80387_REGISTERS */ - -typedef struct { - uint32_t control_word; - uint32_t status_word; - uint32_t tag_word; - uint32_t error_offset; - uint32_t error_selector; - uint32_t data_offset; - uint32_t data_selector; - - /* register_area contains eight 80-bit (x87 "long double") quantities for - * floating-point registers %st0 (%mm0) through %st7 (%mm7). */ - uint8_t register_area[MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE]; - uint32_t cr0_npx_state; -} MDFloatingSaveAreaX86; /* FLOATING_SAVE_AREA */ - - -#define MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE 512 - /* MAXIMUM_SUPPORTED_EXTENSION */ - -typedef struct { - /* The next field determines the layout of the structure, and which parts - * of it are populated */ - uint32_t context_flags; - - /* The next 6 registers are included with MD_CONTEXT_X86_DEBUG_REGISTERS */ - uint32_t dr0; - uint32_t dr1; - uint32_t dr2; - uint32_t dr3; - uint32_t dr6; - uint32_t dr7; - - /* The next field is included with MD_CONTEXT_X86_FLOATING_POINT */ - MDFloatingSaveAreaX86 float_save; - - /* The next 4 registers are included with MD_CONTEXT_X86_SEGMENTS */ - uint32_t gs; - uint32_t fs; - uint32_t es; - uint32_t ds; - /* The next 6 registers are included with MD_CONTEXT_X86_INTEGER */ - uint32_t edi; - uint32_t esi; - uint32_t ebx; - uint32_t edx; - uint32_t ecx; - uint32_t eax; - - /* The next 6 registers are included with MD_CONTEXT_X86_CONTROL */ - uint32_t ebp; - uint32_t eip; - uint32_t cs; /* WinNT.h says "must be sanitized" */ - uint32_t eflags; /* WinNT.h says "must be sanitized" */ - uint32_t esp; - uint32_t ss; - - /* The next field is included with MD_CONTEXT_X86_EXTENDED_REGISTERS. - * It contains vector (MMX/SSE) registers. It it laid out in the - * format used by the fxsave and fsrstor instructions, so it includes - * a copy of the x87 floating-point registers as well. See FXSAVE in - * "Intel Architecture Software Developer's Manual, Volume 2." */ - uint8_t extended_registers[ - MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE]; -} MDRawContextX86; /* CONTEXT */ - -/* For (MDRawContextX86).context_flags. These values indicate the type of - * context stored in the structure. The high 24 bits identify the CPU, the - * low 8 bits identify the type of context saved. */ -#define MD_CONTEXT_X86 0x00010000 - /* CONTEXT_i386, CONTEXT_i486: identifies CPU */ -#define MD_CONTEXT_X86_CONTROL (MD_CONTEXT_X86 | 0x00000001) - /* CONTEXT_CONTROL */ -#define MD_CONTEXT_X86_INTEGER (MD_CONTEXT_X86 | 0x00000002) - /* CONTEXT_INTEGER */ -#define MD_CONTEXT_X86_SEGMENTS (MD_CONTEXT_X86 | 0x00000004) - /* CONTEXT_SEGMENTS */ -#define MD_CONTEXT_X86_FLOATING_POINT (MD_CONTEXT_X86 | 0x00000008) - /* CONTEXT_FLOATING_POINT */ -#define MD_CONTEXT_X86_DEBUG_REGISTERS (MD_CONTEXT_X86 | 0x00000010) - /* CONTEXT_DEBUG_REGISTERS */ -#define MD_CONTEXT_X86_EXTENDED_REGISTERS (MD_CONTEXT_X86 | 0x00000020) - /* CONTEXT_EXTENDED_REGISTERS */ -#define MD_CONTEXT_X86_XSTATE (MD_CONTEXT_X86 | 0x00000040) - /* CONTEXT_XSTATE */ - -#define MD_CONTEXT_X86_FULL (MD_CONTEXT_X86_CONTROL | \ - MD_CONTEXT_X86_INTEGER | \ - MD_CONTEXT_X86_SEGMENTS) - /* CONTEXT_FULL */ - -#define MD_CONTEXT_X86_ALL (MD_CONTEXT_X86_FULL | \ - MD_CONTEXT_X86_FLOATING_POINT | \ - MD_CONTEXT_X86_DEBUG_REGISTERS | \ - MD_CONTEXT_X86_EXTENDED_REGISTERS) - /* CONTEXT_ALL */ - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h b/sources/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h deleted file mode 100644 index 9e7e4f1e..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h +++ /dev/null @@ -1,87 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_exception_linux.h: A definition of exception codes for - * Linux - * - * (This is C99 source, please don't corrupt it with C++.) - * - * Author: Mark Mentovai - * Split into its own file: Neal Sidhwaney */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - - -/* For (MDException).exception_code. These values come from bits/signum.h. - */ -typedef enum { - MD_EXCEPTION_CODE_LIN_SIGHUP = 1, /* Hangup (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGINT = 2, /* Interrupt (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGQUIT = 3, /* Quit (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGILL = 4, /* Illegal instruction (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGTRAP = 5, /* Trace trap (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGABRT = 6, /* Abort (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGBUS = 7, /* BUS error (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGFPE = 8, /* Floating-point exception (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGKILL = 9, /* Kill, unblockable (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGUSR1 = 10, /* User-defined signal 1 (POSIX). */ - MD_EXCEPTION_CODE_LIN_SIGSEGV = 11, /* Segmentation violation (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGUSR2 = 12, /* User-defined signal 2 (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGPIPE = 13, /* Broken pipe (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGALRM = 14, /* Alarm clock (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGTERM = 15, /* Termination (ANSI) */ - MD_EXCEPTION_CODE_LIN_SIGSTKFLT = 16, /* Stack faultd */ - MD_EXCEPTION_CODE_LIN_SIGCHLD = 17, /* Child status has changed (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGCONT = 18, /* Continue (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGSTOP = 19, /* Stop, unblockable (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGTSTP = 20, /* Keyboard stop (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGTTIN = 21, /* Background read from tty (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGTTOU = 22, /* Background write to tty (POSIX) */ - MD_EXCEPTION_CODE_LIN_SIGURG = 23, - /* Urgent condition on socket (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGXCPU = 24, /* CPU limit exceeded (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGXFSZ = 25, - /* File size limit exceeded (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGVTALRM = 26, /* Virtual alarm clock (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGPROF = 27, /* Profiling alarm clock (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGWINCH = 28, /* Window size change (4.3 BSD, Sun) */ - MD_EXCEPTION_CODE_LIN_SIGIO = 29, /* I/O now possible (4.2 BSD) */ - MD_EXCEPTION_CODE_LIN_SIGPWR = 30, /* Power failure restart (System V) */ - MD_EXCEPTION_CODE_LIN_SIGSYS = 31, /* Bad system call */ - MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED = 0xFFFFFFFF /* No exception, - dump requested. */ -} MDExceptionCodeLinux; - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h b/sources/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h deleted file mode 100644 index 91c1c097..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h +++ /dev/null @@ -1,205 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_exception_mac.h: A definition of exception codes for Mac - * OS X - * - * (This is C99 source, please don't corrupt it with C++.) - * - * Author: Mark Mentovai - * Split into its own file: Neal Sidhwaney */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - -/* For (MDException).exception_code. Breakpad minidump extension for Mac OS X - * support. Based on Darwin/Mac OS X' mach/exception_types.h. This is - * what Mac OS X calls an "exception", not a "code". */ -typedef enum { - /* Exception code. The high 16 bits of exception_code contains one of - * these values. */ - MD_EXCEPTION_MAC_BAD_ACCESS = 1, /* code can be a kern_return_t */ - /* EXC_BAD_ACCESS */ - MD_EXCEPTION_MAC_BAD_INSTRUCTION = 2, /* code is CPU-specific */ - /* EXC_BAD_INSTRUCTION */ - MD_EXCEPTION_MAC_ARITHMETIC = 3, /* code is CPU-specific */ - /* EXC_ARITHMETIC */ - MD_EXCEPTION_MAC_EMULATION = 4, /* code is CPU-specific */ - /* EXC_EMULATION */ - MD_EXCEPTION_MAC_SOFTWARE = 5, - /* EXC_SOFTWARE */ - MD_EXCEPTION_MAC_BREAKPOINT = 6, /* code is CPU-specific */ - /* EXC_BREAKPOINT */ - MD_EXCEPTION_MAC_SYSCALL = 7, - /* EXC_SYSCALL */ - MD_EXCEPTION_MAC_MACH_SYSCALL = 8, - /* EXC_MACH_SYSCALL */ - MD_EXCEPTION_MAC_RPC_ALERT = 9 - /* EXC_RPC_ALERT */ -} MDExceptionMac; - -/* For (MDException).exception_flags. Breakpad minidump extension for Mac OS X - * support. Based on Darwin/Mac OS X' mach/ppc/exception.h and - * mach/i386/exception.h. This is what Mac OS X calls a "code". */ -typedef enum { - /* With MD_EXCEPTION_BAD_ACCESS. These are relevant kern_return_t values - * from mach/kern_return.h. */ - MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS = 1, - /* KERN_INVALID_ADDRESS */ - MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE = 2, - /* KERN_PROTECTION_FAILURE */ - MD_EXCEPTION_CODE_MAC_NO_ACCESS = 8, - /* KERN_NO_ACCESS */ - MD_EXCEPTION_CODE_MAC_MEMORY_FAILURE = 9, - /* KERN_MEMORY_FAILURE */ - MD_EXCEPTION_CODE_MAC_MEMORY_ERROR = 10, - /* KERN_MEMORY_ERROR */ - - /* With MD_EXCEPTION_SOFTWARE */ - MD_EXCEPTION_CODE_MAC_BAD_SYSCALL = 0x00010000, /* Mach SIGSYS */ - MD_EXCEPTION_CODE_MAC_BAD_PIPE = 0x00010001, /* Mach SIGPIPE */ - MD_EXCEPTION_CODE_MAC_ABORT = 0x00010002, /* Mach SIGABRT */ - /* Custom values */ - MD_EXCEPTION_CODE_MAC_NS_EXCEPTION = 0xDEADC0DE, /* uncaught NSException */ - - /* With MD_EXCEPTION_MAC_BAD_ACCESS on arm */ - MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN = 0x0101, /* EXC_ARM_DA_ALIGN */ - MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG = 0x0102, /* EXC_ARM_DA_DEBUG */ - - /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on arm */ - MD_EXCEPTION_CODE_MAC_ARM_UNDEFINED = 1, /* EXC_ARM_UNDEFINED */ - - /* With MD_EXCEPTION_MAC_BREAKPOINT on arm */ - MD_EXCEPTION_CODE_MAC_ARM_BREAKPOINT = 1, /* EXC_ARM_BREAKPOINT */ - - /* With MD_EXCEPTION_MAC_BAD_ACCESS on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_VM_PROT_READ = 0x0101, - /* EXC_PPC_VM_PROT_READ */ - MD_EXCEPTION_CODE_MAC_PPC_BADSPACE = 0x0102, - /* EXC_PPC_BADSPACE */ - MD_EXCEPTION_CODE_MAC_PPC_UNALIGNED = 0x0103, - /* EXC_PPC_UNALIGNED */ - - /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_INVALID_SYSCALL = 1, - /* EXC_PPC_INVALID_SYSCALL */ - MD_EXCEPTION_CODE_MAC_PPC_UNIMPLEMENTED_INSTRUCTION = 2, - /* EXC_PPC_UNIPL_INST */ - MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_INSTRUCTION = 3, - /* EXC_PPC_PRIVINST */ - MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_REGISTER = 4, - /* EXC_PPC_PRIVREG */ - MD_EXCEPTION_CODE_MAC_PPC_TRACE = 5, - /* EXC_PPC_TRACE */ - MD_EXCEPTION_CODE_MAC_PPC_PERFORMANCE_MONITOR = 6, - /* EXC_PPC_PERFMON */ - - /* With MD_EXCEPTION_MAC_ARITHMETIC on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_OVERFLOW = 1, - /* EXC_PPC_OVERFLOW */ - MD_EXCEPTION_CODE_MAC_PPC_ZERO_DIVIDE = 2, - /* EXC_PPC_ZERO_DIVIDE */ - MD_EXCEPTION_CODE_MAC_PPC_FLOAT_INEXACT = 3, - /* EXC_FLT_INEXACT */ - MD_EXCEPTION_CODE_MAC_PPC_FLOAT_ZERO_DIVIDE = 4, - /* EXC_PPC_FLT_ZERO_DIVIDE */ - MD_EXCEPTION_CODE_MAC_PPC_FLOAT_UNDERFLOW = 5, - /* EXC_PPC_FLT_UNDERFLOW */ - MD_EXCEPTION_CODE_MAC_PPC_FLOAT_OVERFLOW = 6, - /* EXC_PPC_FLT_OVERFLOW */ - MD_EXCEPTION_CODE_MAC_PPC_FLOAT_NOT_A_NUMBER = 7, - /* EXC_PPC_FLT_NOT_A_NUMBER */ - - /* With MD_EXCEPTION_MAC_EMULATION on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_NO_EMULATION = 8, - /* EXC_PPC_NOEMULATION */ - MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST = 9, - /* EXC_PPC_ALTIVECASSIST */ - - /* With MD_EXCEPTION_MAC_SOFTWARE on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_TRAP = 0x00000001, /* EXC_PPC_TRAP */ - MD_EXCEPTION_CODE_MAC_PPC_MIGRATE = 0x00010100, /* EXC_PPC_MIGRATE */ - - /* With MD_EXCEPTION_MAC_BREAKPOINT on ppc */ - MD_EXCEPTION_CODE_MAC_PPC_BREAKPOINT = 1, /* EXC_PPC_BREAKPOINT */ - - /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86, see also x86 interrupt - * values below. */ - MD_EXCEPTION_CODE_MAC_X86_INVALID_OPERATION = 1, /* EXC_I386_INVOP */ - - /* With MD_EXCEPTION_MAC_ARITHMETIC on x86 */ - MD_EXCEPTION_CODE_MAC_X86_DIV = 1, /* EXC_I386_DIV */ - MD_EXCEPTION_CODE_MAC_X86_INTO = 2, /* EXC_I386_INTO */ - MD_EXCEPTION_CODE_MAC_X86_NOEXT = 3, /* EXC_I386_NOEXT */ - MD_EXCEPTION_CODE_MAC_X86_EXTOVR = 4, /* EXC_I386_EXTOVR */ - MD_EXCEPTION_CODE_MAC_X86_EXTERR = 5, /* EXC_I386_EXTERR */ - MD_EXCEPTION_CODE_MAC_X86_EMERR = 6, /* EXC_I386_EMERR */ - MD_EXCEPTION_CODE_MAC_X86_BOUND = 7, /* EXC_I386_BOUND */ - MD_EXCEPTION_CODE_MAC_X86_SSEEXTERR = 8, /* EXC_I386_SSEEXTERR */ - - /* With MD_EXCEPTION_MAC_BREAKPOINT on x86 */ - MD_EXCEPTION_CODE_MAC_X86_SGL = 1, /* EXC_I386_SGL */ - MD_EXCEPTION_CODE_MAC_X86_BPT = 2, /* EXC_I386_BPT */ - - /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86. These are the raw - * x86 interrupt codes. Most of these are mapped to other Mach - * exceptions and codes, are handled, or should not occur in user space. - * A few of these will do occur with MD_EXCEPTION_MAC_BAD_INSTRUCTION. */ - /* EXC_I386_DIVERR = 0: mapped to EXC_ARITHMETIC/EXC_I386_DIV */ - /* EXC_I386_SGLSTP = 1: mapped to EXC_BREAKPOINT/EXC_I386_SGL */ - /* EXC_I386_NMIFLT = 2: should not occur in user space */ - /* EXC_I386_BPTFLT = 3: mapped to EXC_BREAKPOINT/EXC_I386_BPT */ - /* EXC_I386_INTOFLT = 4: mapped to EXC_ARITHMETIC/EXC_I386_INTO */ - /* EXC_I386_BOUNDFLT = 5: mapped to EXC_ARITHMETIC/EXC_I386_BOUND */ - /* EXC_I386_INVOPFLT = 6: mapped to EXC_BAD_INSTRUCTION/EXC_I386_INVOP */ - /* EXC_I386_NOEXTFLT = 7: should be handled by the kernel */ - /* EXC_I386_DBLFLT = 8: should be handled (if possible) by the kernel */ - /* EXC_I386_EXTOVRFLT = 9: mapped to EXC_BAD_ACCESS/(PROT_READ|PROT_EXEC) */ - MD_EXCEPTION_CODE_MAC_X86_INVALID_TASK_STATE_SEGMENT = 10, - /* EXC_INVTSSFLT */ - MD_EXCEPTION_CODE_MAC_X86_SEGMENT_NOT_PRESENT = 11, - /* EXC_SEGNPFLT */ - MD_EXCEPTION_CODE_MAC_X86_STACK_FAULT = 12, - /* EXC_STKFLT */ - MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT = 13, - /* EXC_GPFLT */ - /* EXC_I386_PGFLT = 14: should not occur in user space */ - /* EXC_I386_EXTERRFLT = 16: mapped to EXC_ARITHMETIC/EXC_I386_EXTERR */ - MD_EXCEPTION_CODE_MAC_X86_ALIGNMENT_FAULT = 17 - /* EXC_ALIGNFLT (for vector operations) */ - /* EXC_I386_ENOEXTFLT = 32: should be handled by the kernel */ - /* EXC_I386_ENDPERR = 33: should not occur */ -} MDExceptionCodeMac; - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_OSX_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h b/sources/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h deleted file mode 100644 index adff5a6b..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h +++ /dev/null @@ -1,67 +0,0 @@ -/* Copyright (c) 2013, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_exception_ps3.h: A definition of exception codes for - * PS3 */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - -typedef enum { - MD_EXCEPTION_CODE_PS3_UNKNOWN = 0, - MD_EXCEPTION_CODE_PS3_TRAP_EXCEP = 1, - MD_EXCEPTION_CODE_PS3_PRIV_INSTR = 2, - MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR = 3, - MD_EXCEPTION_CODE_PS3_INSTR_STORAGE = 4, - MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT = 5, - MD_EXCEPTION_CODE_PS3_DATA_STORAGE = 6, - MD_EXCEPTION_CODE_PS3_DATA_SEGMENT = 7, - MD_EXCEPTION_CODE_PS3_FLOAT_POINT = 8, - MD_EXCEPTION_CODE_PS3_DABR_MATCH = 9, - MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP = 10, - MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS = 11, - MD_EXCEPTION_CODE_PS3_COPRO_ALIGN = 12, - MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM = 13, - MD_EXCEPTION_CODE_PS3_COPRO_ERR = 14, - MD_EXCEPTION_CODE_PS3_COPRO_FIR = 15, - MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT = 16, - MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE = 17, - MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR = 18, - MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR = 19, - MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN = 20, - MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS = 21, - MD_EXCEPTION_CODE_PS3_GRAPHIC = 22 -} MDExceptionCodePS3; - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h b/sources/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h deleted file mode 100644 index f18ddf42..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h +++ /dev/null @@ -1,94 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_exception_solaris.h: A definition of exception codes for - * Solaris - * - * (This is C99 source, please don't corrupt it with C++.) - * - * Author: Mark Mentovai - * Split into its own file: Neal Sidhwaney */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - -/* For (MDException).exception_code. These values come from sys/iso/signal_iso.h - */ -typedef enum { - MD_EXCEPTION_CODE_SOL_SIGHUP = 1, /* Hangup */ - MD_EXCEPTION_CODE_SOL_SIGINT = 2, /* interrupt (rubout) */ - MD_EXCEPTION_CODE_SOL_SIGQUIT = 3, /* quit (ASCII FS) */ - MD_EXCEPTION_CODE_SOL_SIGILL = 4, /* illegal instruction (not reset when caught) */ - MD_EXCEPTION_CODE_SOL_SIGTRAP = 5, /* trace trap (not reset when caught) */ - MD_EXCEPTION_CODE_SOL_SIGIOT = 6, /* IOT instruction */ - MD_EXCEPTION_CODE_SOL_SIGABRT = 6, /* used by abort, replace SIGIOT in the future */ - MD_EXCEPTION_CODE_SOL_SIGEMT = 7, /* EMT instruction */ - MD_EXCEPTION_CODE_SOL_SIGFPE = 8, /* floating point exception */ - MD_EXCEPTION_CODE_SOL_SIGKILL = 9, /* kill (cannot be caught or ignored) */ - MD_EXCEPTION_CODE_SOL_SIGBUS = 10, /* bus error */ - MD_EXCEPTION_CODE_SOL_SIGSEGV = 11, /* segmentation violation */ - MD_EXCEPTION_CODE_SOL_SIGSYS = 12, /* bad argument to system call */ - MD_EXCEPTION_CODE_SOL_SIGPIPE = 13, /* write on a pipe with no one to read it */ - MD_EXCEPTION_CODE_SOL_SIGALRM = 14, /* alarm clock */ - MD_EXCEPTION_CODE_SOL_SIGTERM = 15, /* software termination signal from kill */ - MD_EXCEPTION_CODE_SOL_SIGUSR1 = 16, /* user defined signal 1 */ - MD_EXCEPTION_CODE_SOL_SIGUSR2 = 17, /* user defined signal 2 */ - MD_EXCEPTION_CODE_SOL_SIGCLD = 18, /* child status change */ - MD_EXCEPTION_CODE_SOL_SIGCHLD = 18, /* child status change alias (POSIX) */ - MD_EXCEPTION_CODE_SOL_SIGPWR = 19, /* power-fail restart */ - MD_EXCEPTION_CODE_SOL_SIGWINCH = 20, /* window size change */ - MD_EXCEPTION_CODE_SOL_SIGURG = 21, /* urgent socket condition */ - MD_EXCEPTION_CODE_SOL_SIGPOLL = 22, /* pollable event occurred */ - MD_EXCEPTION_CODE_SOL_SIGIO = 22, /* socket I/O possible (SIGPOLL alias) */ - MD_EXCEPTION_CODE_SOL_SIGSTOP = 23, /* stop (cannot be caught or ignored) */ - MD_EXCEPTION_CODE_SOL_SIGTSTP = 24, /* user stop requested from tty */ - MD_EXCEPTION_CODE_SOL_SIGCONT = 25, /* stopped process has been continued */ - MD_EXCEPTION_CODE_SOL_SIGTTIN = 26, /* background tty read attempted */ - MD_EXCEPTION_CODE_SOL_SIGTTOU = 27, /* background tty write attempted */ - MD_EXCEPTION_CODE_SOL_SIGVTALRM = 28, /* virtual timer expired */ - MD_EXCEPTION_CODE_SOL_SIGPROF = 29, /* profiling timer expired */ - MD_EXCEPTION_CODE_SOL_SIGXCPU = 30, /* exceeded cpu limit */ - MD_EXCEPTION_CODE_SOL_SIGXFSZ = 31, /* exceeded file size limit */ - MD_EXCEPTION_CODE_SOL_SIGWAITING = 32, /* reserved signal no longer used by threading code */ - MD_EXCEPTION_CODE_SOL_SIGLWP = 33, /* reserved signal no longer used by threading code */ - MD_EXCEPTION_CODE_SOL_SIGFREEZE = 34, /* special signal used by CPR */ - MD_EXCEPTION_CODE_SOL_SIGTHAW = 35, /* special signal used by CPR */ - MD_EXCEPTION_CODE_SOL_SIGCANCEL = 36, /* reserved signal for thread cancellation */ - MD_EXCEPTION_CODE_SOL_SIGLOST = 37, /* resource lost (eg, record-lock lost) */ - MD_EXCEPTION_CODE_SOL_SIGXRES = 38, /* resource control exceeded */ - MD_EXCEPTION_CODE_SOL_SIGJVM1 = 39, /* reserved signal for Java Virtual Machine */ - MD_EXCEPTION_CODE_SOL_SIGJVM2 = 40 /* reserved signal for Java Virtual Machine */ -} MDExceptionCodeSolaris; - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h b/sources/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h deleted file mode 100644 index e4cd59ed..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h +++ /dev/null @@ -1,2261 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_exception_win32.h: Definitions of exception codes for - * Win32 platform - * - * (This is C99 source, please don't corrupt it with C++.) - * - * Author: Mark Mentovai - * Split into its own file: Neal Sidhwaney */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - - -/* For (MDException).exception_code. These values come from WinBase.h - * and WinNT.h (names beginning with EXCEPTION_ are in WinBase.h, - * they are STATUS_ in WinNT.h). */ -typedef enum { - MD_EXCEPTION_CODE_WIN_CONTROL_C = 0x40010005, - /* DBG_CONTROL_C */ - MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION = 0x80000001, - /* EXCEPTION_GUARD_PAGE */ - MD_EXCEPTION_CODE_WIN_DATATYPE_MISALIGNMENT = 0x80000002, - /* EXCEPTION_DATATYPE_MISALIGNMENT */ - MD_EXCEPTION_CODE_WIN_BREAKPOINT = 0x80000003, - /* EXCEPTION_BREAKPOINT */ - MD_EXCEPTION_CODE_WIN_SINGLE_STEP = 0x80000004, - /* EXCEPTION_SINGLE_STEP */ - MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION = 0xc0000005, - /* EXCEPTION_ACCESS_VIOLATION */ - MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR = 0xc0000006, - /* EXCEPTION_IN_PAGE_ERROR */ - MD_EXCEPTION_CODE_WIN_INVALID_HANDLE = 0xc0000008, - /* EXCEPTION_INVALID_HANDLE */ - MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION = 0xc000001d, - /* EXCEPTION_ILLEGAL_INSTRUCTION */ - MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION = 0xc0000025, - /* EXCEPTION_NONCONTINUABLE_EXCEPTION */ - MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION = 0xc0000026, - /* EXCEPTION_INVALID_DISPOSITION */ - MD_EXCEPTION_CODE_WIN_ARRAY_BOUNDS_EXCEEDED = 0xc000008c, - /* EXCEPTION_BOUNDS_EXCEEDED */ - MD_EXCEPTION_CODE_WIN_FLOAT_DENORMAL_OPERAND = 0xc000008d, - /* EXCEPTION_FLT_DENORMAL_OPERAND */ - MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO = 0xc000008e, - /* EXCEPTION_FLT_DIVIDE_BY_ZERO */ - MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT = 0xc000008f, - /* EXCEPTION_FLT_INEXACT_RESULT */ - MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION = 0xc0000090, - /* EXCEPTION_FLT_INVALID_OPERATION */ - MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW = 0xc0000091, - /* EXCEPTION_FLT_OVERFLOW */ - MD_EXCEPTION_CODE_WIN_FLOAT_STACK_CHECK = 0xc0000092, - /* EXCEPTION_FLT_STACK_CHECK */ - MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW = 0xc0000093, - /* EXCEPTION_FLT_UNDERFLOW */ - MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO = 0xc0000094, - /* EXCEPTION_INT_DIVIDE_BY_ZERO */ - MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW = 0xc0000095, - /* EXCEPTION_INT_OVERFLOW */ - MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION = 0xc0000096, - /* EXCEPTION_PRIV_INSTRUCTION */ - MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW = 0xc00000fd, - /* EXCEPTION_STACK_OVERFLOW */ - MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK = 0xc0000194, - /* EXCEPTION_POSSIBLE_DEADLOCK */ - MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN = 0xc0000409, - /* STATUS_STACK_BUFFER_OVERRUN */ - MD_EXCEPTION_CODE_WIN_HEAP_CORRUPTION = 0xc0000374, - /* STATUS_HEAP_CORRUPTION */ - MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION = 0xe06d7363 - /* Per http://support.microsoft.com/kb/185294, - generated by Visual C++ compiler */ -} MDExceptionCodeWin; - - -/* For (MDException).exception_information[2], when (MDException).exception_code - * is MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR. This describes the underlying reason - * for the error. These values come from ntstatus.h. - * - * The content of this enum was created from ntstatus.h in the 8.1 SDK with - * - * egrep '#define [A-Z_0-9]+\s+\(\(NTSTATUS\)0xC[0-9A-F]+L\)' ntstatus.h - * | tr -d '\r' - * | sed -r 's@#define ([A-Z_0-9]+)\s+\(\(NTSTATUS\)(0xC[0-9A-F]+)L\).*@\2 \1@' - * | sort - * | sed -r 's@(0xC[0-9A-F]+) ([A-Z_0-9]+)@ MD_NTSTATUS_WIN_\2 = \1,@' - * - * With easy copy to clipboard with - * | xclip -selection c # on linux - * | clip # on windows - * | pbcopy # on mac - * - * and then the last comma manually removed. */ -typedef enum { - MD_NTSTATUS_WIN_STATUS_UNSUCCESSFUL = 0xC0000001, - MD_NTSTATUS_WIN_STATUS_NOT_IMPLEMENTED = 0xC0000002, - MD_NTSTATUS_WIN_STATUS_INVALID_INFO_CLASS = 0xC0000003, - MD_NTSTATUS_WIN_STATUS_INFO_LENGTH_MISMATCH = 0xC0000004, - MD_NTSTATUS_WIN_STATUS_ACCESS_VIOLATION = 0xC0000005, - MD_NTSTATUS_WIN_STATUS_IN_PAGE_ERROR = 0xC0000006, - MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA = 0xC0000007, - MD_NTSTATUS_WIN_STATUS_INVALID_HANDLE = 0xC0000008, - MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_STACK = 0xC0000009, - MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_PC = 0xC000000A, - MD_NTSTATUS_WIN_STATUS_INVALID_CID = 0xC000000B, - MD_NTSTATUS_WIN_STATUS_TIMER_NOT_CANCELED = 0xC000000C, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER = 0xC000000D, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_DEVICE = 0xC000000E, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_FILE = 0xC000000F, - MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_REQUEST = 0xC0000010, - MD_NTSTATUS_WIN_STATUS_END_OF_FILE = 0xC0000011, - MD_NTSTATUS_WIN_STATUS_WRONG_VOLUME = 0xC0000012, - MD_NTSTATUS_WIN_STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013, - MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_MEDIA = 0xC0000014, - MD_NTSTATUS_WIN_STATUS_NONEXISTENT_SECTOR = 0xC0000015, - MD_NTSTATUS_WIN_STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016, - MD_NTSTATUS_WIN_STATUS_NO_MEMORY = 0xC0000017, - MD_NTSTATUS_WIN_STATUS_CONFLICTING_ADDRESSES = 0xC0000018, - MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_VIEW = 0xC0000019, - MD_NTSTATUS_WIN_STATUS_UNABLE_TO_FREE_VM = 0xC000001A, - MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DELETE_SECTION = 0xC000001B, - MD_NTSTATUS_WIN_STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_INSTRUCTION = 0xC000001D, - MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E, - MD_NTSTATUS_WIN_STATUS_INVALID_VIEW_SIZE = 0xC000001F, - MD_NTSTATUS_WIN_STATUS_INVALID_FILE_FOR_SECTION = 0xC0000020, - MD_NTSTATUS_WIN_STATUS_ALREADY_COMMITTED = 0xC0000021, - MD_NTSTATUS_WIN_STATUS_ACCESS_DENIED = 0xC0000022, - MD_NTSTATUS_WIN_STATUS_BUFFER_TOO_SMALL = 0xC0000023, - MD_NTSTATUS_WIN_STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024, - MD_NTSTATUS_WIN_STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025, - MD_NTSTATUS_WIN_STATUS_INVALID_DISPOSITION = 0xC0000026, - MD_NTSTATUS_WIN_STATUS_UNWIND = 0xC0000027, - MD_NTSTATUS_WIN_STATUS_BAD_STACK = 0xC0000028, - MD_NTSTATUS_WIN_STATUS_INVALID_UNWIND_TARGET = 0xC0000029, - MD_NTSTATUS_WIN_STATUS_NOT_LOCKED = 0xC000002A, - MD_NTSTATUS_WIN_STATUS_PARITY_ERROR = 0xC000002B, - MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DECOMMIT_VM = 0xC000002C, - MD_NTSTATUS_WIN_STATUS_NOT_COMMITTED = 0xC000002D, - MD_NTSTATUS_WIN_STATUS_INVALID_PORT_ATTRIBUTES = 0xC000002E, - MD_NTSTATUS_WIN_STATUS_PORT_MESSAGE_TOO_LONG = 0xC000002F, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_MIX = 0xC0000030, - MD_NTSTATUS_WIN_STATUS_INVALID_QUOTA_LOWER = 0xC0000031, - MD_NTSTATUS_WIN_STATUS_DISK_CORRUPT_ERROR = 0xC0000032, - MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_INVALID = 0xC0000033, - MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034, - MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_COLLISION = 0xC0000035, - MD_NTSTATUS_WIN_STATUS_PORT_DISCONNECTED = 0xC0000037, - MD_NTSTATUS_WIN_STATUS_DEVICE_ALREADY_ATTACHED = 0xC0000038, - MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_INVALID = 0xC0000039, - MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A, - MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B, - MD_NTSTATUS_WIN_STATUS_DATA_OVERRUN = 0xC000003C, - MD_NTSTATUS_WIN_STATUS_DATA_LATE_ERROR = 0xC000003D, - MD_NTSTATUS_WIN_STATUS_DATA_ERROR = 0xC000003E, - MD_NTSTATUS_WIN_STATUS_CRC_ERROR = 0xC000003F, - MD_NTSTATUS_WIN_STATUS_SECTION_TOO_BIG = 0xC0000040, - MD_NTSTATUS_WIN_STATUS_PORT_CONNECTION_REFUSED = 0xC0000041, - MD_NTSTATUS_WIN_STATUS_INVALID_PORT_HANDLE = 0xC0000042, - MD_NTSTATUS_WIN_STATUS_SHARING_VIOLATION = 0xC0000043, - MD_NTSTATUS_WIN_STATUS_QUOTA_EXCEEDED = 0xC0000044, - MD_NTSTATUS_WIN_STATUS_INVALID_PAGE_PROTECTION = 0xC0000045, - MD_NTSTATUS_WIN_STATUS_MUTANT_NOT_OWNED = 0xC0000046, - MD_NTSTATUS_WIN_STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC0000047, - MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_SET = 0xC0000048, - MD_NTSTATUS_WIN_STATUS_SECTION_NOT_IMAGE = 0xC0000049, - MD_NTSTATUS_WIN_STATUS_SUSPEND_COUNT_EXCEEDED = 0xC000004A, - MD_NTSTATUS_WIN_STATUS_THREAD_IS_TERMINATING = 0xC000004B, - MD_NTSTATUS_WIN_STATUS_BAD_WORKING_SET_LIMIT = 0xC000004C, - MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_FILE_MAP = 0xC000004D, - MD_NTSTATUS_WIN_STATUS_SECTION_PROTECTION = 0xC000004E, - MD_NTSTATUS_WIN_STATUS_EAS_NOT_SUPPORTED = 0xC000004F, - MD_NTSTATUS_WIN_STATUS_EA_TOO_LARGE = 0xC0000050, - MD_NTSTATUS_WIN_STATUS_NONEXISTENT_EA_ENTRY = 0xC0000051, - MD_NTSTATUS_WIN_STATUS_NO_EAS_ON_FILE = 0xC0000052, - MD_NTSTATUS_WIN_STATUS_EA_CORRUPT_ERROR = 0xC0000053, - MD_NTSTATUS_WIN_STATUS_FILE_LOCK_CONFLICT = 0xC0000054, - MD_NTSTATUS_WIN_STATUS_LOCK_NOT_GRANTED = 0xC0000055, - MD_NTSTATUS_WIN_STATUS_DELETE_PENDING = 0xC0000056, - MD_NTSTATUS_WIN_STATUS_CTL_FILE_NOT_SUPPORTED = 0xC0000057, - MD_NTSTATUS_WIN_STATUS_UNKNOWN_REVISION = 0xC0000058, - MD_NTSTATUS_WIN_STATUS_REVISION_MISMATCH = 0xC0000059, - MD_NTSTATUS_WIN_STATUS_INVALID_OWNER = 0xC000005A, - MD_NTSTATUS_WIN_STATUS_INVALID_PRIMARY_GROUP = 0xC000005B, - MD_NTSTATUS_WIN_STATUS_NO_IMPERSONATION_TOKEN = 0xC000005C, - MD_NTSTATUS_WIN_STATUS_CANT_DISABLE_MANDATORY = 0xC000005D, - MD_NTSTATUS_WIN_STATUS_NO_LOGON_SERVERS = 0xC000005E, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_LOGON_SESSION = 0xC000005F, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_PRIVILEGE = 0xC0000060, - MD_NTSTATUS_WIN_STATUS_PRIVILEGE_NOT_HELD = 0xC0000061, - MD_NTSTATUS_WIN_STATUS_INVALID_ACCOUNT_NAME = 0xC0000062, - MD_NTSTATUS_WIN_STATUS_USER_EXISTS = 0xC0000063, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_USER = 0xC0000064, - MD_NTSTATUS_WIN_STATUS_GROUP_EXISTS = 0xC0000065, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_GROUP = 0xC0000066, - MD_NTSTATUS_WIN_STATUS_MEMBER_IN_GROUP = 0xC0000067, - MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_GROUP = 0xC0000068, - MD_NTSTATUS_WIN_STATUS_LAST_ADMIN = 0xC0000069, - MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD = 0xC000006A, - MD_NTSTATUS_WIN_STATUS_ILL_FORMED_PASSWORD = 0xC000006B, - MD_NTSTATUS_WIN_STATUS_PASSWORD_RESTRICTION = 0xC000006C, - MD_NTSTATUS_WIN_STATUS_LOGON_FAILURE = 0xC000006D, - MD_NTSTATUS_WIN_STATUS_ACCOUNT_RESTRICTION = 0xC000006E, - MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_HOURS = 0xC000006F, - MD_NTSTATUS_WIN_STATUS_INVALID_WORKSTATION = 0xC0000070, - MD_NTSTATUS_WIN_STATUS_PASSWORD_EXPIRED = 0xC0000071, - MD_NTSTATUS_WIN_STATUS_ACCOUNT_DISABLED = 0xC0000072, - MD_NTSTATUS_WIN_STATUS_NONE_MAPPED = 0xC0000073, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_LUIDS_REQUESTED = 0xC0000074, - MD_NTSTATUS_WIN_STATUS_LUIDS_EXHAUSTED = 0xC0000075, - MD_NTSTATUS_WIN_STATUS_INVALID_SUB_AUTHORITY = 0xC0000076, - MD_NTSTATUS_WIN_STATUS_INVALID_ACL = 0xC0000077, - MD_NTSTATUS_WIN_STATUS_INVALID_SID = 0xC0000078, - MD_NTSTATUS_WIN_STATUS_INVALID_SECURITY_DESCR = 0xC0000079, - MD_NTSTATUS_WIN_STATUS_PROCEDURE_NOT_FOUND = 0xC000007A, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_FORMAT = 0xC000007B, - MD_NTSTATUS_WIN_STATUS_NO_TOKEN = 0xC000007C, - MD_NTSTATUS_WIN_STATUS_BAD_INHERITANCE_ACL = 0xC000007D, - MD_NTSTATUS_WIN_STATUS_RANGE_NOT_LOCKED = 0xC000007E, - MD_NTSTATUS_WIN_STATUS_DISK_FULL = 0xC000007F, - MD_NTSTATUS_WIN_STATUS_SERVER_DISABLED = 0xC0000080, - MD_NTSTATUS_WIN_STATUS_SERVER_NOT_DISABLED = 0xC0000081, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_GUIDS_REQUESTED = 0xC0000082, - MD_NTSTATUS_WIN_STATUS_GUIDS_EXHAUSTED = 0xC0000083, - MD_NTSTATUS_WIN_STATUS_INVALID_ID_AUTHORITY = 0xC0000084, - MD_NTSTATUS_WIN_STATUS_AGENTS_EXHAUSTED = 0xC0000085, - MD_NTSTATUS_WIN_STATUS_INVALID_VOLUME_LABEL = 0xC0000086, - MD_NTSTATUS_WIN_STATUS_SECTION_NOT_EXTENDED = 0xC0000087, - MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_DATA = 0xC0000088, - MD_NTSTATUS_WIN_STATUS_RESOURCE_DATA_NOT_FOUND = 0xC0000089, - MD_NTSTATUS_WIN_STATUS_RESOURCE_TYPE_NOT_FOUND = 0xC000008A, - MD_NTSTATUS_WIN_STATUS_RESOURCE_NAME_NOT_FOUND = 0xC000008B, - MD_NTSTATUS_WIN_STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C, - MD_NTSTATUS_WIN_STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D, - MD_NTSTATUS_WIN_STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E, - MD_NTSTATUS_WIN_STATUS_FLOAT_INEXACT_RESULT = 0xC000008F, - MD_NTSTATUS_WIN_STATUS_FLOAT_INVALID_OPERATION = 0xC0000090, - MD_NTSTATUS_WIN_STATUS_FLOAT_OVERFLOW = 0xC0000091, - MD_NTSTATUS_WIN_STATUS_FLOAT_STACK_CHECK = 0xC0000092, - MD_NTSTATUS_WIN_STATUS_FLOAT_UNDERFLOW = 0xC0000093, - MD_NTSTATUS_WIN_STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094, - MD_NTSTATUS_WIN_STATUS_INTEGER_OVERFLOW = 0xC0000095, - MD_NTSTATUS_WIN_STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_PAGING_FILES = 0xC0000097, - MD_NTSTATUS_WIN_STATUS_FILE_INVALID = 0xC0000098, - MD_NTSTATUS_WIN_STATUS_ALLOTTED_SPACE_EXCEEDED = 0xC0000099, - MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCES = 0xC000009A, - MD_NTSTATUS_WIN_STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B, - MD_NTSTATUS_WIN_STATUS_DEVICE_DATA_ERROR = 0xC000009C, - MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_CONNECTED = 0xC000009D, - MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_FAILURE = 0xC000009E, - MD_NTSTATUS_WIN_STATUS_FREE_VM_NOT_AT_BASE = 0xC000009F, - MD_NTSTATUS_WIN_STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0, - MD_NTSTATUS_WIN_STATUS_WORKING_SET_QUOTA = 0xC00000A1, - MD_NTSTATUS_WIN_STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2, - MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_READY = 0xC00000A3, - MD_NTSTATUS_WIN_STATUS_INVALID_GROUP_ATTRIBUTES = 0xC00000A4, - MD_NTSTATUS_WIN_STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5, - MD_NTSTATUS_WIN_STATUS_CANT_OPEN_ANONYMOUS = 0xC00000A6, - MD_NTSTATUS_WIN_STATUS_BAD_VALIDATION_CLASS = 0xC00000A7, - MD_NTSTATUS_WIN_STATUS_BAD_TOKEN_TYPE = 0xC00000A8, - MD_NTSTATUS_WIN_STATUS_BAD_MASTER_BOOT_RECORD = 0xC00000A9, - MD_NTSTATUS_WIN_STATUS_INSTRUCTION_MISALIGNMENT = 0xC00000AA, - MD_NTSTATUS_WIN_STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB, - MD_NTSTATUS_WIN_STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC, - MD_NTSTATUS_WIN_STATUS_INVALID_PIPE_STATE = 0xC00000AD, - MD_NTSTATUS_WIN_STATUS_PIPE_BUSY = 0xC00000AE, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_FUNCTION = 0xC00000AF, - MD_NTSTATUS_WIN_STATUS_PIPE_DISCONNECTED = 0xC00000B0, - MD_NTSTATUS_WIN_STATUS_PIPE_CLOSING = 0xC00000B1, - MD_NTSTATUS_WIN_STATUS_PIPE_CONNECTED = 0xC00000B2, - MD_NTSTATUS_WIN_STATUS_PIPE_LISTENING = 0xC00000B3, - MD_NTSTATUS_WIN_STATUS_INVALID_READ_MODE = 0xC00000B4, - MD_NTSTATUS_WIN_STATUS_IO_TIMEOUT = 0xC00000B5, - MD_NTSTATUS_WIN_STATUS_FILE_FORCED_CLOSED = 0xC00000B6, - MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STARTED = 0xC00000B7, - MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STOPPED = 0xC00000B8, - MD_NTSTATUS_WIN_STATUS_COULD_NOT_INTERPRET = 0xC00000B9, - MD_NTSTATUS_WIN_STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA, - MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED = 0xC00000BB, - MD_NTSTATUS_WIN_STATUS_REMOTE_NOT_LISTENING = 0xC00000BC, - MD_NTSTATUS_WIN_STATUS_DUPLICATE_NAME = 0xC00000BD, - MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_PATH = 0xC00000BE, - MD_NTSTATUS_WIN_STATUS_NETWORK_BUSY = 0xC00000BF, - MD_NTSTATUS_WIN_STATUS_DEVICE_DOES_NOT_EXIST = 0xC00000C0, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_COMMANDS = 0xC00000C1, - MD_NTSTATUS_WIN_STATUS_ADAPTER_HARDWARE_ERROR = 0xC00000C2, - MD_NTSTATUS_WIN_STATUS_INVALID_NETWORK_RESPONSE = 0xC00000C3, - MD_NTSTATUS_WIN_STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4, - MD_NTSTATUS_WIN_STATUS_BAD_REMOTE_ADAPTER = 0xC00000C5, - MD_NTSTATUS_WIN_STATUS_PRINT_QUEUE_FULL = 0xC00000C6, - MD_NTSTATUS_WIN_STATUS_NO_SPOOL_SPACE = 0xC00000C7, - MD_NTSTATUS_WIN_STATUS_PRINT_CANCELLED = 0xC00000C8, - MD_NTSTATUS_WIN_STATUS_NETWORK_NAME_DELETED = 0xC00000C9, - MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA, - MD_NTSTATUS_WIN_STATUS_BAD_DEVICE_TYPE = 0xC00000CB, - MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_NAME = 0xC00000CC, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_NAMES = 0xC00000CD, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_SESSIONS = 0xC00000CE, - MD_NTSTATUS_WIN_STATUS_SHARING_PAUSED = 0xC00000CF, - MD_NTSTATUS_WIN_STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0, - MD_NTSTATUS_WIN_STATUS_REDIRECTOR_PAUSED = 0xC00000D1, - MD_NTSTATUS_WIN_STATUS_NET_WRITE_FAULT = 0xC00000D2, - MD_NTSTATUS_WIN_STATUS_PROFILING_AT_LIMIT = 0xC00000D3, - MD_NTSTATUS_WIN_STATUS_NOT_SAME_DEVICE = 0xC00000D4, - MD_NTSTATUS_WIN_STATUS_FILE_RENAMED = 0xC00000D5, - MD_NTSTATUS_WIN_STATUS_VIRTUAL_CIRCUIT_CLOSED = 0xC00000D6, - MD_NTSTATUS_WIN_STATUS_NO_SECURITY_ON_OBJECT = 0xC00000D7, - MD_NTSTATUS_WIN_STATUS_CANT_WAIT = 0xC00000D8, - MD_NTSTATUS_WIN_STATUS_PIPE_EMPTY = 0xC00000D9, - MD_NTSTATUS_WIN_STATUS_CANT_ACCESS_DOMAIN_INFO = 0xC00000DA, - MD_NTSTATUS_WIN_STATUS_CANT_TERMINATE_SELF = 0xC00000DB, - MD_NTSTATUS_WIN_STATUS_INVALID_SERVER_STATE = 0xC00000DC, - MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_STATE = 0xC00000DD, - MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_ROLE = 0xC00000DE, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_DOMAIN = 0xC00000DF, - MD_NTSTATUS_WIN_STATUS_DOMAIN_EXISTS = 0xC00000E0, - MD_NTSTATUS_WIN_STATUS_DOMAIN_LIMIT_EXCEEDED = 0xC00000E1, - MD_NTSTATUS_WIN_STATUS_OPLOCK_NOT_GRANTED = 0xC00000E2, - MD_NTSTATUS_WIN_STATUS_INVALID_OPLOCK_PROTOCOL = 0xC00000E3, - MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_CORRUPTION = 0xC00000E4, - MD_NTSTATUS_WIN_STATUS_INTERNAL_ERROR = 0xC00000E5, - MD_NTSTATUS_WIN_STATUS_GENERIC_NOT_MAPPED = 0xC00000E6, - MD_NTSTATUS_WIN_STATUS_BAD_DESCRIPTOR_FORMAT = 0xC00000E7, - MD_NTSTATUS_WIN_STATUS_INVALID_USER_BUFFER = 0xC00000E8, - MD_NTSTATUS_WIN_STATUS_UNEXPECTED_IO_ERROR = 0xC00000E9, - MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_CREATE_ERR = 0xC00000EA, - MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_MAP_ERROR = 0xC00000EB, - MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_EXTEND_ERR = 0xC00000EC, - MD_NTSTATUS_WIN_STATUS_NOT_LOGON_PROCESS = 0xC00000ED, - MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_EXISTS = 0xC00000EE, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_1 = 0xC00000EF, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_2 = 0xC00000F0, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_3 = 0xC00000F1, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_4 = 0xC00000F2, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_5 = 0xC00000F3, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_6 = 0xC00000F4, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_7 = 0xC00000F5, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_8 = 0xC00000F6, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_9 = 0xC00000F7, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_10 = 0xC00000F8, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_11 = 0xC00000F9, - MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_12 = 0xC00000FA, - MD_NTSTATUS_WIN_STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB, - MD_NTSTATUS_WIN_STATUS_REDIRECTOR_STARTED = 0xC00000FC, - MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW = 0xC00000FD, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_PACKAGE = 0xC00000FE, - MD_NTSTATUS_WIN_STATUS_BAD_FUNCTION_TABLE = 0xC00000FF, - MD_NTSTATUS_WIN_STATUS_VARIABLE_NOT_FOUND = 0xC0000100, - MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101, - MD_NTSTATUS_WIN_STATUS_FILE_CORRUPT_ERROR = 0xC0000102, - MD_NTSTATUS_WIN_STATUS_NOT_A_DIRECTORY = 0xC0000103, - MD_NTSTATUS_WIN_STATUS_BAD_LOGON_SESSION_STATE = 0xC0000104, - MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_COLLISION = 0xC0000105, - MD_NTSTATUS_WIN_STATUS_NAME_TOO_LONG = 0xC0000106, - MD_NTSTATUS_WIN_STATUS_FILES_OPEN = 0xC0000107, - MD_NTSTATUS_WIN_STATUS_CONNECTION_IN_USE = 0xC0000108, - MD_NTSTATUS_WIN_STATUS_MESSAGE_NOT_FOUND = 0xC0000109, - MD_NTSTATUS_WIN_STATUS_PROCESS_IS_TERMINATING = 0xC000010A, - MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_TYPE = 0xC000010B, - MD_NTSTATUS_WIN_STATUS_NO_GUID_TRANSLATION = 0xC000010C, - MD_NTSTATUS_WIN_STATUS_CANNOT_IMPERSONATE = 0xC000010D, - MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED = 0xC000010E, - MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_PRESENT = 0xC000010F, - MD_NTSTATUS_WIN_STATUS_ABIOS_LID_NOT_EXIST = 0xC0000110, - MD_NTSTATUS_WIN_STATUS_ABIOS_LID_ALREADY_OWNED = 0xC0000111, - MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_LID_OWNER = 0xC0000112, - MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_COMMAND = 0xC0000113, - MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_LID = 0xC0000114, - MD_NTSTATUS_WIN_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE = 0xC0000115, - MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_SELECTOR = 0xC0000116, - MD_NTSTATUS_WIN_STATUS_NO_LDT = 0xC0000117, - MD_NTSTATUS_WIN_STATUS_INVALID_LDT_SIZE = 0xC0000118, - MD_NTSTATUS_WIN_STATUS_INVALID_LDT_OFFSET = 0xC0000119, - MD_NTSTATUS_WIN_STATUS_INVALID_LDT_DESCRIPTOR = 0xC000011A, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NE_FORMAT = 0xC000011B, - MD_NTSTATUS_WIN_STATUS_RXACT_INVALID_STATE = 0xC000011C, - MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_FAILURE = 0xC000011D, - MD_NTSTATUS_WIN_STATUS_MAPPED_FILE_SIZE_ZERO = 0xC000011E, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_OPENED_FILES = 0xC000011F, - MD_NTSTATUS_WIN_STATUS_CANCELLED = 0xC0000120, - MD_NTSTATUS_WIN_STATUS_CANNOT_DELETE = 0xC0000121, - MD_NTSTATUS_WIN_STATUS_INVALID_COMPUTER_NAME = 0xC0000122, - MD_NTSTATUS_WIN_STATUS_FILE_DELETED = 0xC0000123, - MD_NTSTATUS_WIN_STATUS_SPECIAL_ACCOUNT = 0xC0000124, - MD_NTSTATUS_WIN_STATUS_SPECIAL_GROUP = 0xC0000125, - MD_NTSTATUS_WIN_STATUS_SPECIAL_USER = 0xC0000126, - MD_NTSTATUS_WIN_STATUS_MEMBERS_PRIMARY_GROUP = 0xC0000127, - MD_NTSTATUS_WIN_STATUS_FILE_CLOSED = 0xC0000128, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_THREADS = 0xC0000129, - MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_PROCESS = 0xC000012A, - MD_NTSTATUS_WIN_STATUS_TOKEN_ALREADY_IN_USE = 0xC000012B, - MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA_EXCEEDED = 0xC000012C, - MD_NTSTATUS_WIN_STATUS_COMMITMENT_LIMIT = 0xC000012D, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_LE_FORMAT = 0xC000012E, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NOT_MZ = 0xC000012F, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_PROTECT = 0xC0000130, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_16 = 0xC0000131, - MD_NTSTATUS_WIN_STATUS_LOGON_SERVER_CONFLICT = 0xC0000132, - MD_NTSTATUS_WIN_STATUS_TIME_DIFFERENCE_AT_DC = 0xC0000133, - MD_NTSTATUS_WIN_STATUS_SYNCHRONIZATION_REQUIRED = 0xC0000134, - MD_NTSTATUS_WIN_STATUS_DLL_NOT_FOUND = 0xC0000135, - MD_NTSTATUS_WIN_STATUS_OPEN_FAILED = 0xC0000136, - MD_NTSTATUS_WIN_STATUS_IO_PRIVILEGE_FAILED = 0xC0000137, - MD_NTSTATUS_WIN_STATUS_ORDINAL_NOT_FOUND = 0xC0000138, - MD_NTSTATUS_WIN_STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139, - MD_NTSTATUS_WIN_STATUS_CONTROL_C_EXIT = 0xC000013A, - MD_NTSTATUS_WIN_STATUS_LOCAL_DISCONNECT = 0xC000013B, - MD_NTSTATUS_WIN_STATUS_REMOTE_DISCONNECT = 0xC000013C, - MD_NTSTATUS_WIN_STATUS_REMOTE_RESOURCES = 0xC000013D, - MD_NTSTATUS_WIN_STATUS_LINK_FAILED = 0xC000013E, - MD_NTSTATUS_WIN_STATUS_LINK_TIMEOUT = 0xC000013F, - MD_NTSTATUS_WIN_STATUS_INVALID_CONNECTION = 0xC0000140, - MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS = 0xC0000141, - MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED = 0xC0000142, - MD_NTSTATUS_WIN_STATUS_MISSING_SYSTEMFILE = 0xC0000143, - MD_NTSTATUS_WIN_STATUS_UNHANDLED_EXCEPTION = 0xC0000144, - MD_NTSTATUS_WIN_STATUS_APP_INIT_FAILURE = 0xC0000145, - MD_NTSTATUS_WIN_STATUS_PAGEFILE_CREATE_FAILED = 0xC0000146, - MD_NTSTATUS_WIN_STATUS_NO_PAGEFILE = 0xC0000147, - MD_NTSTATUS_WIN_STATUS_INVALID_LEVEL = 0xC0000148, - MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD_CORE = 0xC0000149, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_FLOAT_CONTEXT = 0xC000014A, - MD_NTSTATUS_WIN_STATUS_PIPE_BROKEN = 0xC000014B, - MD_NTSTATUS_WIN_STATUS_REGISTRY_CORRUPT = 0xC000014C, - MD_NTSTATUS_WIN_STATUS_REGISTRY_IO_FAILED = 0xC000014D, - MD_NTSTATUS_WIN_STATUS_NO_EVENT_PAIR = 0xC000014E, - MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_VOLUME = 0xC000014F, - MD_NTSTATUS_WIN_STATUS_SERIAL_NO_DEVICE_INITED = 0xC0000150, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_ALIAS = 0xC0000151, - MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_ALIAS = 0xC0000152, - MD_NTSTATUS_WIN_STATUS_MEMBER_IN_ALIAS = 0xC0000153, - MD_NTSTATUS_WIN_STATUS_ALIAS_EXISTS = 0xC0000154, - MD_NTSTATUS_WIN_STATUS_LOGON_NOT_GRANTED = 0xC0000155, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_SECRETS = 0xC0000156, - MD_NTSTATUS_WIN_STATUS_SECRET_TOO_LONG = 0xC0000157, - MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_ERROR = 0xC0000158, - MD_NTSTATUS_WIN_STATUS_FULLSCREEN_MODE = 0xC0000159, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_CONTEXT_IDS = 0xC000015A, - MD_NTSTATUS_WIN_STATUS_LOGON_TYPE_NOT_GRANTED = 0xC000015B, - MD_NTSTATUS_WIN_STATUS_NOT_REGISTRY_FILE = 0xC000015C, - MD_NTSTATUS_WIN_STATUS_NT_CROSS_ENCRYPTION_REQUIRED = 0xC000015D, - MD_NTSTATUS_WIN_STATUS_DOMAIN_CTRLR_CONFIG_ERROR = 0xC000015E, - MD_NTSTATUS_WIN_STATUS_FT_MISSING_MEMBER = 0xC000015F, - MD_NTSTATUS_WIN_STATUS_ILL_FORMED_SERVICE_ENTRY = 0xC0000160, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_CHARACTER = 0xC0000161, - MD_NTSTATUS_WIN_STATUS_UNMAPPABLE_CHARACTER = 0xC0000162, - MD_NTSTATUS_WIN_STATUS_UNDEFINED_CHARACTER = 0xC0000163, - MD_NTSTATUS_WIN_STATUS_FLOPPY_VOLUME = 0xC0000164, - MD_NTSTATUS_WIN_STATUS_FLOPPY_ID_MARK_NOT_FOUND = 0xC0000165, - MD_NTSTATUS_WIN_STATUS_FLOPPY_WRONG_CYLINDER = 0xC0000166, - MD_NTSTATUS_WIN_STATUS_FLOPPY_UNKNOWN_ERROR = 0xC0000167, - MD_NTSTATUS_WIN_STATUS_FLOPPY_BAD_REGISTERS = 0xC0000168, - MD_NTSTATUS_WIN_STATUS_DISK_RECALIBRATE_FAILED = 0xC0000169, - MD_NTSTATUS_WIN_STATUS_DISK_OPERATION_FAILED = 0xC000016A, - MD_NTSTATUS_WIN_STATUS_DISK_RESET_FAILED = 0xC000016B, - MD_NTSTATUS_WIN_STATUS_SHARED_IRQ_BUSY = 0xC000016C, - MD_NTSTATUS_WIN_STATUS_FT_ORPHANING = 0xC000016D, - MD_NTSTATUS_WIN_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = 0xC000016E, - MD_NTSTATUS_WIN_STATUS_PARTITION_FAILURE = 0xC0000172, - MD_NTSTATUS_WIN_STATUS_INVALID_BLOCK_LENGTH = 0xC0000173, - MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_PARTITIONED = 0xC0000174, - MD_NTSTATUS_WIN_STATUS_UNABLE_TO_LOCK_MEDIA = 0xC0000175, - MD_NTSTATUS_WIN_STATUS_UNABLE_TO_UNLOAD_MEDIA = 0xC0000176, - MD_NTSTATUS_WIN_STATUS_EOM_OVERFLOW = 0xC0000177, - MD_NTSTATUS_WIN_STATUS_NO_MEDIA = 0xC0000178, - MD_NTSTATUS_WIN_STATUS_NO_SUCH_MEMBER = 0xC000017A, - MD_NTSTATUS_WIN_STATUS_INVALID_MEMBER = 0xC000017B, - MD_NTSTATUS_WIN_STATUS_KEY_DELETED = 0xC000017C, - MD_NTSTATUS_WIN_STATUS_NO_LOG_SPACE = 0xC000017D, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_SIDS = 0xC000017E, - MD_NTSTATUS_WIN_STATUS_LM_CROSS_ENCRYPTION_REQUIRED = 0xC000017F, - MD_NTSTATUS_WIN_STATUS_KEY_HAS_CHILDREN = 0xC0000180, - MD_NTSTATUS_WIN_STATUS_CHILD_MUST_BE_VOLATILE = 0xC0000181, - MD_NTSTATUS_WIN_STATUS_DEVICE_CONFIGURATION_ERROR = 0xC0000182, - MD_NTSTATUS_WIN_STATUS_DRIVER_INTERNAL_ERROR = 0xC0000183, - MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_STATE = 0xC0000184, - MD_NTSTATUS_WIN_STATUS_IO_DEVICE_ERROR = 0xC0000185, - MD_NTSTATUS_WIN_STATUS_DEVICE_PROTOCOL_ERROR = 0xC0000186, - MD_NTSTATUS_WIN_STATUS_BACKUP_CONTROLLER = 0xC0000187, - MD_NTSTATUS_WIN_STATUS_LOG_FILE_FULL = 0xC0000188, - MD_NTSTATUS_WIN_STATUS_TOO_LATE = 0xC0000189, - MD_NTSTATUS_WIN_STATUS_NO_TRUST_LSA_SECRET = 0xC000018A, - MD_NTSTATUS_WIN_STATUS_NO_TRUST_SAM_ACCOUNT = 0xC000018B, - MD_NTSTATUS_WIN_STATUS_TRUSTED_DOMAIN_FAILURE = 0xC000018C, - MD_NTSTATUS_WIN_STATUS_TRUSTED_RELATIONSHIP_FAILURE = 0xC000018D, - MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CORRUPT = 0xC000018E, - MD_NTSTATUS_WIN_STATUS_EVENTLOG_CANT_START = 0xC000018F, - MD_NTSTATUS_WIN_STATUS_TRUST_FAILURE = 0xC0000190, - MD_NTSTATUS_WIN_STATUS_MUTANT_LIMIT_EXCEEDED = 0xC0000191, - MD_NTSTATUS_WIN_STATUS_NETLOGON_NOT_STARTED = 0xC0000192, - MD_NTSTATUS_WIN_STATUS_ACCOUNT_EXPIRED = 0xC0000193, - MD_NTSTATUS_WIN_STATUS_POSSIBLE_DEADLOCK = 0xC0000194, - MD_NTSTATUS_WIN_STATUS_NETWORK_CREDENTIAL_CONFLICT = 0xC0000195, - MD_NTSTATUS_WIN_STATUS_REMOTE_SESSION_LIMIT = 0xC0000196, - MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CHANGED = 0xC0000197, - MD_NTSTATUS_WIN_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 0xC0000198, - MD_NTSTATUS_WIN_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 0xC0000199, - MD_NTSTATUS_WIN_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = 0xC000019A, - MD_NTSTATUS_WIN_STATUS_DOMAIN_TRUST_INCONSISTENT = 0xC000019B, - MD_NTSTATUS_WIN_STATUS_FS_DRIVER_REQUIRED = 0xC000019C, - MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED_AS_DLL = 0xC000019D, - MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 0xC000019E, - MD_NTSTATUS_WIN_STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 0xC000019F, - MD_NTSTATUS_WIN_STATUS_SECURITY_STREAM_IS_INCONSISTENT = 0xC00001A0, - MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_RANGE = 0xC00001A1, - MD_NTSTATUS_WIN_STATUS_INVALID_ACE_CONDITION = 0xC00001A2, - MD_NTSTATUS_WIN_STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT = 0xC00001A3, - MD_NTSTATUS_WIN_STATUS_NOTIFICATION_GUID_ALREADY_DEFINED = 0xC00001A4, - MD_NTSTATUS_WIN_STATUS_INVALID_EXCEPTION_HANDLER = 0xC00001A5, - MD_NTSTATUS_WIN_STATUS_DUPLICATE_PRIVILEGES = 0xC00001A6, - MD_NTSTATUS_WIN_STATUS_NOT_ALLOWED_ON_SYSTEM_FILE = 0xC00001A7, - MD_NTSTATUS_WIN_STATUS_REPAIR_NEEDED = 0xC00001A8, - MD_NTSTATUS_WIN_STATUS_QUOTA_NOT_ENABLED = 0xC00001A9, - MD_NTSTATUS_WIN_STATUS_NO_APPLICATION_PACKAGE = 0xC00001AA, - MD_NTSTATUS_WIN_STATUS_NETWORK_OPEN_RESTRICTION = 0xC0000201, - MD_NTSTATUS_WIN_STATUS_NO_USER_SESSION_KEY = 0xC0000202, - MD_NTSTATUS_WIN_STATUS_USER_SESSION_DELETED = 0xC0000203, - MD_NTSTATUS_WIN_STATUS_RESOURCE_LANG_NOT_FOUND = 0xC0000204, - MD_NTSTATUS_WIN_STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205, - MD_NTSTATUS_WIN_STATUS_INVALID_BUFFER_SIZE = 0xC0000206, - MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_COMPONENT = 0xC0000207, - MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_WILDCARD = 0xC0000208, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_ADDRESSES = 0xC0000209, - MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_EXISTS = 0xC000020A, - MD_NTSTATUS_WIN_STATUS_ADDRESS_CLOSED = 0xC000020B, - MD_NTSTATUS_WIN_STATUS_CONNECTION_DISCONNECTED = 0xC000020C, - MD_NTSTATUS_WIN_STATUS_CONNECTION_RESET = 0xC000020D, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_NODES = 0xC000020E, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_ABORTED = 0xC000020F, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_TIMED_OUT = 0xC0000210, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_RELEASE = 0xC0000211, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_MATCH = 0xC0000212, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONDED = 0xC0000213, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_ID = 0xC0000214, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_TYPE = 0xC0000215, - MD_NTSTATUS_WIN_STATUS_NOT_SERVER_SESSION = 0xC0000216, - MD_NTSTATUS_WIN_STATUS_NOT_CLIENT_SESSION = 0xC0000217, - MD_NTSTATUS_WIN_STATUS_CANNOT_LOAD_REGISTRY_FILE = 0xC0000218, - MD_NTSTATUS_WIN_STATUS_DEBUG_ATTACH_FAILED = 0xC0000219, - MD_NTSTATUS_WIN_STATUS_SYSTEM_PROCESS_TERMINATED = 0xC000021A, - MD_NTSTATUS_WIN_STATUS_DATA_NOT_ACCEPTED = 0xC000021B, - MD_NTSTATUS_WIN_STATUS_NO_BROWSER_SERVERS_FOUND = 0xC000021C, - MD_NTSTATUS_WIN_STATUS_VDM_HARD_ERROR = 0xC000021D, - MD_NTSTATUS_WIN_STATUS_DRIVER_CANCEL_TIMEOUT = 0xC000021E, - MD_NTSTATUS_WIN_STATUS_REPLY_MESSAGE_MISMATCH = 0xC000021F, - MD_NTSTATUS_WIN_STATUS_MAPPED_ALIGNMENT = 0xC0000220, - MD_NTSTATUS_WIN_STATUS_IMAGE_CHECKSUM_MISMATCH = 0xC0000221, - MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA = 0xC0000222, - MD_NTSTATUS_WIN_STATUS_CLIENT_SERVER_PARAMETERS_INVALID = 0xC0000223, - MD_NTSTATUS_WIN_STATUS_PASSWORD_MUST_CHANGE = 0xC0000224, - MD_NTSTATUS_WIN_STATUS_NOT_FOUND = 0xC0000225, - MD_NTSTATUS_WIN_STATUS_NOT_TINY_STREAM = 0xC0000226, - MD_NTSTATUS_WIN_STATUS_RECOVERY_FAILURE = 0xC0000227, - MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW_READ = 0xC0000228, - MD_NTSTATUS_WIN_STATUS_FAIL_CHECK = 0xC0000229, - MD_NTSTATUS_WIN_STATUS_DUPLICATE_OBJECTID = 0xC000022A, - MD_NTSTATUS_WIN_STATUS_OBJECTID_EXISTS = 0xC000022B, - MD_NTSTATUS_WIN_STATUS_CONVERT_TO_LARGE = 0xC000022C, - MD_NTSTATUS_WIN_STATUS_RETRY = 0xC000022D, - MD_NTSTATUS_WIN_STATUS_FOUND_OUT_OF_SCOPE = 0xC000022E, - MD_NTSTATUS_WIN_STATUS_ALLOCATE_BUCKET = 0xC000022F, - MD_NTSTATUS_WIN_STATUS_PROPSET_NOT_FOUND = 0xC0000230, - MD_NTSTATUS_WIN_STATUS_MARSHALL_OVERFLOW = 0xC0000231, - MD_NTSTATUS_WIN_STATUS_INVALID_VARIANT = 0xC0000232, - MD_NTSTATUS_WIN_STATUS_DOMAIN_CONTROLLER_NOT_FOUND = 0xC0000233, - MD_NTSTATUS_WIN_STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234, - MD_NTSTATUS_WIN_STATUS_HANDLE_NOT_CLOSABLE = 0xC0000235, - MD_NTSTATUS_WIN_STATUS_CONNECTION_REFUSED = 0xC0000236, - MD_NTSTATUS_WIN_STATUS_GRACEFUL_DISCONNECT = 0xC0000237, - MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_ASSOCIATED = 0xC0000238, - MD_NTSTATUS_WIN_STATUS_ADDRESS_NOT_ASSOCIATED = 0xC0000239, - MD_NTSTATUS_WIN_STATUS_CONNECTION_INVALID = 0xC000023A, - MD_NTSTATUS_WIN_STATUS_CONNECTION_ACTIVE = 0xC000023B, - MD_NTSTATUS_WIN_STATUS_NETWORK_UNREACHABLE = 0xC000023C, - MD_NTSTATUS_WIN_STATUS_HOST_UNREACHABLE = 0xC000023D, - MD_NTSTATUS_WIN_STATUS_PROTOCOL_UNREACHABLE = 0xC000023E, - MD_NTSTATUS_WIN_STATUS_PORT_UNREACHABLE = 0xC000023F, - MD_NTSTATUS_WIN_STATUS_REQUEST_ABORTED = 0xC0000240, - MD_NTSTATUS_WIN_STATUS_CONNECTION_ABORTED = 0xC0000241, - MD_NTSTATUS_WIN_STATUS_BAD_COMPRESSION_BUFFER = 0xC0000242, - MD_NTSTATUS_WIN_STATUS_USER_MAPPED_FILE = 0xC0000243, - MD_NTSTATUS_WIN_STATUS_AUDIT_FAILED = 0xC0000244, - MD_NTSTATUS_WIN_STATUS_TIMER_RESOLUTION_NOT_SET = 0xC0000245, - MD_NTSTATUS_WIN_STATUS_CONNECTION_COUNT_LIMIT = 0xC0000246, - MD_NTSTATUS_WIN_STATUS_LOGIN_TIME_RESTRICTION = 0xC0000247, - MD_NTSTATUS_WIN_STATUS_LOGIN_WKSTA_RESTRICTION = 0xC0000248, - MD_NTSTATUS_WIN_STATUS_IMAGE_MP_UP_MISMATCH = 0xC0000249, - MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_LOGON_INFO = 0xC0000250, - MD_NTSTATUS_WIN_STATUS_BAD_DLL_ENTRYPOINT = 0xC0000251, - MD_NTSTATUS_WIN_STATUS_BAD_SERVICE_ENTRYPOINT = 0xC0000252, - MD_NTSTATUS_WIN_STATUS_LPC_REPLY_LOST = 0xC0000253, - MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT1 = 0xC0000254, - MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT2 = 0xC0000255, - MD_NTSTATUS_WIN_STATUS_REGISTRY_QUOTA_LIMIT = 0xC0000256, - MD_NTSTATUS_WIN_STATUS_PATH_NOT_COVERED = 0xC0000257, - MD_NTSTATUS_WIN_STATUS_NO_CALLBACK_ACTIVE = 0xC0000258, - MD_NTSTATUS_WIN_STATUS_LICENSE_QUOTA_EXCEEDED = 0xC0000259, - MD_NTSTATUS_WIN_STATUS_PWD_TOO_SHORT = 0xC000025A, - MD_NTSTATUS_WIN_STATUS_PWD_TOO_RECENT = 0xC000025B, - MD_NTSTATUS_WIN_STATUS_PWD_HISTORY_CONFLICT = 0xC000025C, - MD_NTSTATUS_WIN_STATUS_PLUGPLAY_NO_DEVICE = 0xC000025E, - MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_COMPRESSION = 0xC000025F, - MD_NTSTATUS_WIN_STATUS_INVALID_HW_PROFILE = 0xC0000260, - MD_NTSTATUS_WIN_STATUS_INVALID_PLUGPLAY_DEVICE_PATH = 0xC0000261, - MD_NTSTATUS_WIN_STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262, - MD_NTSTATUS_WIN_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263, - MD_NTSTATUS_WIN_STATUS_RESOURCE_NOT_OWNED = 0xC0000264, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_LINKS = 0xC0000265, - MD_NTSTATUS_WIN_STATUS_QUOTA_LIST_INCONSISTENT = 0xC0000266, - MD_NTSTATUS_WIN_STATUS_FILE_IS_OFFLINE = 0xC0000267, - MD_NTSTATUS_WIN_STATUS_EVALUATION_EXPIRATION = 0xC0000268, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_DLL_RELOCATION = 0xC0000269, - MD_NTSTATUS_WIN_STATUS_LICENSE_VIOLATION = 0xC000026A, - MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B, - MD_NTSTATUS_WIN_STATUS_DRIVER_UNABLE_TO_LOAD = 0xC000026C, - MD_NTSTATUS_WIN_STATUS_DFS_UNAVAILABLE = 0xC000026D, - MD_NTSTATUS_WIN_STATUS_VOLUME_DISMOUNTED = 0xC000026E, - MD_NTSTATUS_WIN_STATUS_WX86_INTERNAL_ERROR = 0xC000026F, - MD_NTSTATUS_WIN_STATUS_WX86_FLOAT_STACK_CHECK = 0xC0000270, - MD_NTSTATUS_WIN_STATUS_VALIDATE_CONTINUE = 0xC0000271, - MD_NTSTATUS_WIN_STATUS_NO_MATCH = 0xC0000272, - MD_NTSTATUS_WIN_STATUS_NO_MORE_MATCHES = 0xC0000273, - MD_NTSTATUS_WIN_STATUS_NOT_A_REPARSE_POINT = 0xC0000275, - MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_INVALID = 0xC0000276, - MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_MISMATCH = 0xC0000277, - MD_NTSTATUS_WIN_STATUS_IO_REPARSE_DATA_INVALID = 0xC0000278, - MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_NOT_HANDLED = 0xC0000279, - MD_NTSTATUS_WIN_STATUS_PWD_TOO_LONG = 0xC000027A, - MD_NTSTATUS_WIN_STATUS_STOWED_EXCEPTION = 0xC000027B, - MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_NOT_RESOLVED = 0xC0000280, - MD_NTSTATUS_WIN_STATUS_DIRECTORY_IS_A_REPARSE_POINT = 0xC0000281, - MD_NTSTATUS_WIN_STATUS_RANGE_LIST_CONFLICT = 0xC0000282, - MD_NTSTATUS_WIN_STATUS_SOURCE_ELEMENT_EMPTY = 0xC0000283, - MD_NTSTATUS_WIN_STATUS_DESTINATION_ELEMENT_FULL = 0xC0000284, - MD_NTSTATUS_WIN_STATUS_ILLEGAL_ELEMENT_ADDRESS = 0xC0000285, - MD_NTSTATUS_WIN_STATUS_MAGAZINE_NOT_PRESENT = 0xC0000286, - MD_NTSTATUS_WIN_STATUS_REINITIALIZATION_NEEDED = 0xC0000287, - MD_NTSTATUS_WIN_STATUS_ENCRYPTION_FAILED = 0xC000028A, - MD_NTSTATUS_WIN_STATUS_DECRYPTION_FAILED = 0xC000028B, - MD_NTSTATUS_WIN_STATUS_RANGE_NOT_FOUND = 0xC000028C, - MD_NTSTATUS_WIN_STATUS_NO_RECOVERY_POLICY = 0xC000028D, - MD_NTSTATUS_WIN_STATUS_NO_EFS = 0xC000028E, - MD_NTSTATUS_WIN_STATUS_WRONG_EFS = 0xC000028F, - MD_NTSTATUS_WIN_STATUS_NO_USER_KEYS = 0xC0000290, - MD_NTSTATUS_WIN_STATUS_FILE_NOT_ENCRYPTED = 0xC0000291, - MD_NTSTATUS_WIN_STATUS_NOT_EXPORT_FORMAT = 0xC0000292, - MD_NTSTATUS_WIN_STATUS_FILE_ENCRYPTED = 0xC0000293, - MD_NTSTATUS_WIN_STATUS_WMI_GUID_NOT_FOUND = 0xC0000295, - MD_NTSTATUS_WIN_STATUS_WMI_INSTANCE_NOT_FOUND = 0xC0000296, - MD_NTSTATUS_WIN_STATUS_WMI_ITEMID_NOT_FOUND = 0xC0000297, - MD_NTSTATUS_WIN_STATUS_WMI_TRY_AGAIN = 0xC0000298, - MD_NTSTATUS_WIN_STATUS_SHARED_POLICY = 0xC0000299, - MD_NTSTATUS_WIN_STATUS_POLICY_OBJECT_NOT_FOUND = 0xC000029A, - MD_NTSTATUS_WIN_STATUS_POLICY_ONLY_IN_DS = 0xC000029B, - MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_UPGRADED = 0xC000029C, - MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_NOT_ACTIVE = 0xC000029D, - MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_MEDIA_ERROR = 0xC000029E, - MD_NTSTATUS_WIN_STATUS_NO_TRACKING_SERVICE = 0xC000029F, - MD_NTSTATUS_WIN_STATUS_SERVER_SID_MISMATCH = 0xC00002A0, - MD_NTSTATUS_WIN_STATUS_DS_NO_ATTRIBUTE_OR_VALUE = 0xC00002A1, - MD_NTSTATUS_WIN_STATUS_DS_INVALID_ATTRIBUTE_SYNTAX = 0xC00002A2, - MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED = 0xC00002A3, - MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS = 0xC00002A4, - MD_NTSTATUS_WIN_STATUS_DS_BUSY = 0xC00002A5, - MD_NTSTATUS_WIN_STATUS_DS_UNAVAILABLE = 0xC00002A6, - MD_NTSTATUS_WIN_STATUS_DS_NO_RIDS_ALLOCATED = 0xC00002A7, - MD_NTSTATUS_WIN_STATUS_DS_NO_MORE_RIDS = 0xC00002A8, - MD_NTSTATUS_WIN_STATUS_DS_INCORRECT_ROLE_OWNER = 0xC00002A9, - MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_INIT_ERROR = 0xC00002AA, - MD_NTSTATUS_WIN_STATUS_DS_OBJ_CLASS_VIOLATION = 0xC00002AB, - MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_NON_LEAF = 0xC00002AC, - MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_RDN = 0xC00002AD, - MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_OBJ_CLASS = 0xC00002AE, - MD_NTSTATUS_WIN_STATUS_DS_CROSS_DOM_MOVE_FAILED = 0xC00002AF, - MD_NTSTATUS_WIN_STATUS_DS_GC_NOT_AVAILABLE = 0xC00002B0, - MD_NTSTATUS_WIN_STATUS_DIRECTORY_SERVICE_REQUIRED = 0xC00002B1, - MD_NTSTATUS_WIN_STATUS_REPARSE_ATTRIBUTE_CONFLICT = 0xC00002B2, - MD_NTSTATUS_WIN_STATUS_CANT_ENABLE_DENY_ONLY = 0xC00002B3, - MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4, - MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5, - MD_NTSTATUS_WIN_STATUS_DEVICE_REMOVED = 0xC00002B6, - MD_NTSTATUS_WIN_STATUS_JOURNAL_DELETE_IN_PROGRESS = 0xC00002B7, - MD_NTSTATUS_WIN_STATUS_JOURNAL_NOT_ACTIVE = 0xC00002B8, - MD_NTSTATUS_WIN_STATUS_NOINTERFACE = 0xC00002B9, - MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_DISABLED = 0xC00002BA, - MD_NTSTATUS_WIN_STATUS_DS_ADMIN_LIMIT_EXCEEDED = 0xC00002C1, - MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_SLEEP = 0xC00002C2, - MD_NTSTATUS_WIN_STATUS_MUTUAL_AUTHENTICATION_FAILED = 0xC00002C3, - MD_NTSTATUS_WIN_STATUS_CORRUPT_SYSTEM_FILE = 0xC00002C4, - MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT_ERROR = 0xC00002C5, - MD_NTSTATUS_WIN_STATUS_WMI_READ_ONLY = 0xC00002C6, - MD_NTSTATUS_WIN_STATUS_WMI_SET_FAILURE = 0xC00002C7, - MD_NTSTATUS_WIN_STATUS_COMMITMENT_MINIMUM = 0xC00002C8, - MD_NTSTATUS_WIN_STATUS_REG_NAT_CONSUMPTION = 0xC00002C9, - MD_NTSTATUS_WIN_STATUS_TRANSPORT_FULL = 0xC00002CA, - MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE = 0xC00002CB, - MD_NTSTATUS_WIN_STATUS_ONLY_IF_CONNECTED = 0xC00002CC, - MD_NTSTATUS_WIN_STATUS_DS_SENSITIVE_GROUP_VIOLATION = 0xC00002CD, - MD_NTSTATUS_WIN_STATUS_PNP_RESTART_ENUMERATION = 0xC00002CE, - MD_NTSTATUS_WIN_STATUS_JOURNAL_ENTRY_DELETED = 0xC00002CF, - MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_PRIMARYGROUPID = 0xC00002D0, - MD_NTSTATUS_WIN_STATUS_SYSTEM_IMAGE_BAD_SIGNATURE = 0xC00002D1, - MD_NTSTATUS_WIN_STATUS_PNP_REBOOT_REQUIRED = 0xC00002D2, - MD_NTSTATUS_WIN_STATUS_POWER_STATE_INVALID = 0xC00002D3, - MD_NTSTATUS_WIN_STATUS_DS_INVALID_GROUP_TYPE = 0xC00002D4, - MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 0xC00002D5, - MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 0xC00002D6, - MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D7, - MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 0xC00002D8, - MD_NTSTATUS_WIN_STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D9, - MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 0xC00002DA, - MD_NTSTATUS_WIN_STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 0xC00002DB, - MD_NTSTATUS_WIN_STATUS_DS_HAVE_PRIMARY_MEMBERS = 0xC00002DC, - MD_NTSTATUS_WIN_STATUS_WMI_NOT_SUPPORTED = 0xC00002DD, - MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_POWER = 0xC00002DE, - MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_PASSWORD = 0xC00002DF, - MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_FLOPPY = 0xC00002E0, - MD_NTSTATUS_WIN_STATUS_DS_CANT_START = 0xC00002E1, - MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE = 0xC00002E2, - MD_NTSTATUS_WIN_STATUS_SAM_INIT_FAILURE = 0xC00002E3, - MD_NTSTATUS_WIN_STATUS_DS_GC_REQUIRED = 0xC00002E4, - MD_NTSTATUS_WIN_STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 0xC00002E5, - MD_NTSTATUS_WIN_STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 0xC00002E6, - MD_NTSTATUS_WIN_STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 0xC00002E7, - MD_NTSTATUS_WIN_STATUS_MULTIPLE_FAULT_VIOLATION = 0xC00002E8, - MD_NTSTATUS_WIN_STATUS_CURRENT_DOMAIN_NOT_ALLOWED = 0xC00002E9, - MD_NTSTATUS_WIN_STATUS_CANNOT_MAKE = 0xC00002EA, - MD_NTSTATUS_WIN_STATUS_SYSTEM_SHUTDOWN = 0xC00002EB, - MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE_CONSOLE = 0xC00002EC, - MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE_CONSOLE = 0xC00002ED, - MD_NTSTATUS_WIN_STATUS_UNFINISHED_CONTEXT_DELETED = 0xC00002EE, - MD_NTSTATUS_WIN_STATUS_NO_TGT_REPLY = 0xC00002EF, - MD_NTSTATUS_WIN_STATUS_OBJECTID_NOT_FOUND = 0xC00002F0, - MD_NTSTATUS_WIN_STATUS_NO_IP_ADDRESSES = 0xC00002F1, - MD_NTSTATUS_WIN_STATUS_WRONG_CREDENTIAL_HANDLE = 0xC00002F2, - MD_NTSTATUS_WIN_STATUS_CRYPTO_SYSTEM_INVALID = 0xC00002F3, - MD_NTSTATUS_WIN_STATUS_MAX_REFERRALS_EXCEEDED = 0xC00002F4, - MD_NTSTATUS_WIN_STATUS_MUST_BE_KDC = 0xC00002F5, - MD_NTSTATUS_WIN_STATUS_STRONG_CRYPTO_NOT_SUPPORTED = 0xC00002F6, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_PRINCIPALS = 0xC00002F7, - MD_NTSTATUS_WIN_STATUS_NO_PA_DATA = 0xC00002F8, - MD_NTSTATUS_WIN_STATUS_PKINIT_NAME_MISMATCH = 0xC00002F9, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_LOGON_REQUIRED = 0xC00002FA, - MD_NTSTATUS_WIN_STATUS_KDC_INVALID_REQUEST = 0xC00002FB, - MD_NTSTATUS_WIN_STATUS_KDC_UNABLE_TO_REFER = 0xC00002FC, - MD_NTSTATUS_WIN_STATUS_KDC_UNKNOWN_ETYPE = 0xC00002FD, - MD_NTSTATUS_WIN_STATUS_SHUTDOWN_IN_PROGRESS = 0xC00002FE, - MD_NTSTATUS_WIN_STATUS_SERVER_SHUTDOWN_IN_PROGRESS = 0xC00002FF, - MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_SBS = 0xC0000300, - MD_NTSTATUS_WIN_STATUS_WMI_GUID_DISCONNECTED = 0xC0000301, - MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_DISABLED = 0xC0000302, - MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_ENABLED = 0xC0000303, - MD_NTSTATUS_WIN_STATUS_MFT_TOO_FRAGMENTED = 0xC0000304, - MD_NTSTATUS_WIN_STATUS_COPY_PROTECTION_FAILURE = 0xC0000305, - MD_NTSTATUS_WIN_STATUS_CSS_AUTHENTICATION_FAILURE = 0xC0000306, - MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_PRESENT = 0xC0000307, - MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_ESTABLISHED = 0xC0000308, - MD_NTSTATUS_WIN_STATUS_CSS_SCRAMBLED_SECTOR = 0xC0000309, - MD_NTSTATUS_WIN_STATUS_CSS_REGION_MISMATCH = 0xC000030A, - MD_NTSTATUS_WIN_STATUS_CSS_RESETS_EXHAUSTED = 0xC000030B, - MD_NTSTATUS_WIN_STATUS_PASSWORD_CHANGE_REQUIRED = 0xC000030C, - MD_NTSTATUS_WIN_STATUS_PKINIT_FAILURE = 0xC0000320, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_SUBSYSTEM_FAILURE = 0xC0000321, - MD_NTSTATUS_WIN_STATUS_NO_KERB_KEY = 0xC0000322, - MD_NTSTATUS_WIN_STATUS_HOST_DOWN = 0xC0000350, - MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_PREAUTH = 0xC0000351, - MD_NTSTATUS_WIN_STATUS_EFS_ALG_BLOB_TOO_BIG = 0xC0000352, - MD_NTSTATUS_WIN_STATUS_PORT_NOT_SET = 0xC0000353, - MD_NTSTATUS_WIN_STATUS_DEBUGGER_INACTIVE = 0xC0000354, - MD_NTSTATUS_WIN_STATUS_DS_VERSION_CHECK_FAILURE = 0xC0000355, - MD_NTSTATUS_WIN_STATUS_AUDITING_DISABLED = 0xC0000356, - MD_NTSTATUS_WIN_STATUS_PRENT4_MACHINE_ACCOUNT = 0xC0000357, - MD_NTSTATUS_WIN_STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 0xC0000358, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_32 = 0xC0000359, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_64 = 0xC000035A, - MD_NTSTATUS_WIN_STATUS_BAD_BINDINGS = 0xC000035B, - MD_NTSTATUS_WIN_STATUS_NETWORK_SESSION_EXPIRED = 0xC000035C, - MD_NTSTATUS_WIN_STATUS_APPHELP_BLOCK = 0xC000035D, - MD_NTSTATUS_WIN_STATUS_ALL_SIDS_FILTERED = 0xC000035E, - MD_NTSTATUS_WIN_STATUS_NOT_SAFE_MODE_DRIVER = 0xC000035F, - MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT = 0xC0000361, - MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PATH = 0xC0000362, - MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER = 0xC0000363, - MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_OTHER = 0xC0000364, - MD_NTSTATUS_WIN_STATUS_FAILED_DRIVER_ENTRY = 0xC0000365, - MD_NTSTATUS_WIN_STATUS_DEVICE_ENUMERATION_ERROR = 0xC0000366, - MD_NTSTATUS_WIN_STATUS_MOUNT_POINT_NOT_RESOLVED = 0xC0000368, - MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_OBJECT_PARAMETER = 0xC0000369, - MD_NTSTATUS_WIN_STATUS_MCA_OCCURED = 0xC000036A, - MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED_CRITICAL = 0xC000036B, - MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED = 0xC000036C, - MD_NTSTATUS_WIN_STATUS_DRIVER_DATABASE_ERROR = 0xC000036D, - MD_NTSTATUS_WIN_STATUS_SYSTEM_HIVE_TOO_LARGE = 0xC000036E, - MD_NTSTATUS_WIN_STATUS_INVALID_IMPORT_OF_NON_DLL = 0xC000036F, - MD_NTSTATUS_WIN_STATUS_NO_SECRETS = 0xC0000371, - MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 0xC0000372, - MD_NTSTATUS_WIN_STATUS_FAILED_STACK_SWITCH = 0xC0000373, - MD_NTSTATUS_WIN_STATUS_HEAP_CORRUPTION = 0xC0000374, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_WRONG_PIN = 0xC0000380, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_BLOCKED = 0xC0000381, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED = 0xC0000382, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CARD = 0xC0000383, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEY_CONTAINER = 0xC0000384, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CERTIFICATE = 0xC0000385, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEYSET = 0xC0000386, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_IO_ERROR = 0xC0000387, - MD_NTSTATUS_WIN_STATUS_DOWNGRADE_DETECTED = 0xC0000388, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_REVOKED = 0xC0000389, - MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED = 0xC000038A, - MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_C = 0xC000038B, - MD_NTSTATUS_WIN_STATUS_PKINIT_CLIENT_FAILURE = 0xC000038C, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_EXPIRED = 0xC000038D, - MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_PRIOR_UNLOAD = 0xC000038E, - MD_NTSTATUS_WIN_STATUS_SMARTCARD_SILENT_CONTEXT = 0xC000038F, - MD_NTSTATUS_WIN_STATUS_PER_USER_TRUST_QUOTA_EXCEEDED = 0xC0000401, - MD_NTSTATUS_WIN_STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED = 0xC0000402, - MD_NTSTATUS_WIN_STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED = 0xC0000403, - MD_NTSTATUS_WIN_STATUS_DS_NAME_NOT_UNIQUE = 0xC0000404, - MD_NTSTATUS_WIN_STATUS_DS_DUPLICATE_ID_FOUND = 0xC0000405, - MD_NTSTATUS_WIN_STATUS_DS_GROUP_CONVERSION_ERROR = 0xC0000406, - MD_NTSTATUS_WIN_STATUS_VOLSNAP_PREPARE_HIBERNATE = 0xC0000407, - MD_NTSTATUS_WIN_STATUS_USER2USER_REQUIRED = 0xC0000408, - MD_NTSTATUS_WIN_STATUS_STACK_BUFFER_OVERRUN = 0xC0000409, - MD_NTSTATUS_WIN_STATUS_NO_S4U_PROT_SUPPORT = 0xC000040A, - MD_NTSTATUS_WIN_STATUS_CROSSREALM_DELEGATION_FAILURE = 0xC000040B, - MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_KDC = 0xC000040C, - MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED_KDC = 0xC000040D, - MD_NTSTATUS_WIN_STATUS_KDC_CERT_EXPIRED = 0xC000040E, - MD_NTSTATUS_WIN_STATUS_KDC_CERT_REVOKED = 0xC000040F, - MD_NTSTATUS_WIN_STATUS_PARAMETER_QUOTA_EXCEEDED = 0xC0000410, - MD_NTSTATUS_WIN_STATUS_HIBERNATION_FAILURE = 0xC0000411, - MD_NTSTATUS_WIN_STATUS_DELAY_LOAD_FAILED = 0xC0000412, - MD_NTSTATUS_WIN_STATUS_AUTHENTICATION_FIREWALL_FAILED = 0xC0000413, - MD_NTSTATUS_WIN_STATUS_VDM_DISALLOWED = 0xC0000414, - MD_NTSTATUS_WIN_STATUS_HUNG_DISPLAY_DRIVER_THREAD = 0xC0000415, - MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 0xC0000416, - MD_NTSTATUS_WIN_STATUS_INVALID_CRUNTIME_PARAMETER = 0xC0000417, - MD_NTSTATUS_WIN_STATUS_NTLM_BLOCKED = 0xC0000418, - MD_NTSTATUS_WIN_STATUS_DS_SRC_SID_EXISTS_IN_FOREST = 0xC0000419, - MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST = 0xC000041A, - MD_NTSTATUS_WIN_STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST = 0xC000041B, - MD_NTSTATUS_WIN_STATUS_INVALID_USER_PRINCIPAL_NAME = 0xC000041C, - MD_NTSTATUS_WIN_STATUS_FATAL_USER_CALLBACK_EXCEPTION = 0xC000041D, - MD_NTSTATUS_WIN_STATUS_ASSERTION_FAILURE = 0xC0000420, - MD_NTSTATUS_WIN_STATUS_VERIFIER_STOP = 0xC0000421, - MD_NTSTATUS_WIN_STATUS_CALLBACK_POP_STACK = 0xC0000423, - MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_DRIVER_BLOCKED = 0xC0000424, - MD_NTSTATUS_WIN_STATUS_HIVE_UNLOADED = 0xC0000425, - MD_NTSTATUS_WIN_STATUS_COMPRESSION_DISABLED = 0xC0000426, - MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_LIMITATION = 0xC0000427, - MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_HASH = 0xC0000428, - MD_NTSTATUS_WIN_STATUS_NOT_CAPABLE = 0xC0000429, - MD_NTSTATUS_WIN_STATUS_REQUEST_OUT_OF_SEQUENCE = 0xC000042A, - MD_NTSTATUS_WIN_STATUS_IMPLEMENTATION_LIMIT = 0xC000042B, - MD_NTSTATUS_WIN_STATUS_ELEVATION_REQUIRED = 0xC000042C, - MD_NTSTATUS_WIN_STATUS_NO_SECURITY_CONTEXT = 0xC000042D, - MD_NTSTATUS_WIN_STATUS_PKU2U_CERT_FAILURE = 0xC000042F, - MD_NTSTATUS_WIN_STATUS_BEYOND_VDL = 0xC0000432, - MD_NTSTATUS_WIN_STATUS_ENCOUNTERED_WRITE_IN_PROGRESS = 0xC0000433, - MD_NTSTATUS_WIN_STATUS_PTE_CHANGED = 0xC0000434, - MD_NTSTATUS_WIN_STATUS_PURGE_FAILED = 0xC0000435, - MD_NTSTATUS_WIN_STATUS_CRED_REQUIRES_CONFIRMATION = 0xC0000440, - MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = 0xC0000441, - MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER = 0xC0000442, - MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = 0xC0000443, - MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = 0xC0000444, - MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_FILE_NOT_CSE = 0xC0000445, - MD_NTSTATUS_WIN_STATUS_INVALID_LABEL = 0xC0000446, - MD_NTSTATUS_WIN_STATUS_DRIVER_PROCESS_TERMINATED = 0xC0000450, - MD_NTSTATUS_WIN_STATUS_AMBIGUOUS_SYSTEM_DEVICE = 0xC0000451, - MD_NTSTATUS_WIN_STATUS_SYSTEM_DEVICE_NOT_FOUND = 0xC0000452, - MD_NTSTATUS_WIN_STATUS_RESTART_BOOT_APPLICATION = 0xC0000453, - MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_NVRAM_RESOURCES = 0xC0000454, - MD_NTSTATUS_WIN_STATUS_INVALID_SESSION = 0xC0000455, - MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_SESSION = 0xC0000456, - MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_SESSION = 0xC0000457, - MD_NTSTATUS_WIN_STATUS_INVALID_WEIGHT = 0xC0000458, - MD_NTSTATUS_WIN_STATUS_REQUEST_PAUSED = 0xC0000459, - MD_NTSTATUS_WIN_STATUS_NO_RANGES_PROCESSED = 0xC0000460, - MD_NTSTATUS_WIN_STATUS_DISK_RESOURCES_EXHAUSTED = 0xC0000461, - MD_NTSTATUS_WIN_STATUS_NEEDS_REMEDIATION = 0xC0000462, - MD_NTSTATUS_WIN_STATUS_DEVICE_FEATURE_NOT_SUPPORTED = 0xC0000463, - MD_NTSTATUS_WIN_STATUS_DEVICE_UNREACHABLE = 0xC0000464, - MD_NTSTATUS_WIN_STATUS_INVALID_TOKEN = 0xC0000465, - MD_NTSTATUS_WIN_STATUS_SERVER_UNAVAILABLE = 0xC0000466, - MD_NTSTATUS_WIN_STATUS_FILE_NOT_AVAILABLE = 0xC0000467, - MD_NTSTATUS_WIN_STATUS_DEVICE_INSUFFICIENT_RESOURCES = 0xC0000468, - MD_NTSTATUS_WIN_STATUS_PACKAGE_UPDATING = 0xC0000469, - MD_NTSTATUS_WIN_STATUS_NOT_READ_FROM_COPY = 0xC000046A, - MD_NTSTATUS_WIN_STATUS_FT_WRITE_FAILURE = 0xC000046B, - MD_NTSTATUS_WIN_STATUS_FT_DI_SCAN_REQUIRED = 0xC000046C, - MD_NTSTATUS_WIN_STATUS_OBJECT_NOT_EXTERNALLY_BACKED = 0xC000046D, - MD_NTSTATUS_WIN_STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 0xC000046E, - MD_NTSTATUS_WIN_STATUS_DATA_CHECKSUM_ERROR = 0xC0000470, - MD_NTSTATUS_WIN_STATUS_INTERMIXED_KERNEL_EA_OPERATION = 0xC0000471, - MD_NTSTATUS_WIN_STATUS_TRIM_READ_ZERO_NOT_SUPPORTED = 0xC0000472, - MD_NTSTATUS_WIN_STATUS_TOO_MANY_SEGMENT_DESCRIPTORS = 0xC0000473, - MD_NTSTATUS_WIN_STATUS_INVALID_OFFSET_ALIGNMENT = 0xC0000474, - MD_NTSTATUS_WIN_STATUS_INVALID_FIELD_IN_PARAMETER_LIST = 0xC0000475, - MD_NTSTATUS_WIN_STATUS_OPERATION_IN_PROGRESS = 0xC0000476, - MD_NTSTATUS_WIN_STATUS_INVALID_INITIATOR_TARGET_PATH = 0xC0000477, - MD_NTSTATUS_WIN_STATUS_SCRUB_DATA_DISABLED = 0xC0000478, - MD_NTSTATUS_WIN_STATUS_NOT_REDUNDANT_STORAGE = 0xC0000479, - MD_NTSTATUS_WIN_STATUS_RESIDENT_FILE_NOT_SUPPORTED = 0xC000047A, - MD_NTSTATUS_WIN_STATUS_COMPRESSED_FILE_NOT_SUPPORTED = 0xC000047B, - MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_SUPPORTED = 0xC000047C, - MD_NTSTATUS_WIN_STATUS_IO_OPERATION_TIMEOUT = 0xC000047D, - MD_NTSTATUS_WIN_STATUS_SYSTEM_NEEDS_REMEDIATION = 0xC000047E, - MD_NTSTATUS_WIN_STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN = 0xC000047F, - MD_NTSTATUS_WIN_STATUS_SHARE_UNAVAILABLE = 0xC0000480, - MD_NTSTATUS_WIN_STATUS_APISET_NOT_HOSTED = 0xC0000481, - MD_NTSTATUS_WIN_STATUS_APISET_NOT_PRESENT = 0xC0000482, - MD_NTSTATUS_WIN_STATUS_DEVICE_HARDWARE_ERROR = 0xC0000483, - MD_NTSTATUS_WIN_STATUS_INVALID_TASK_NAME = 0xC0000500, - MD_NTSTATUS_WIN_STATUS_INVALID_TASK_INDEX = 0xC0000501, - MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_TASK = 0xC0000502, - MD_NTSTATUS_WIN_STATUS_CALLBACK_BYPASS = 0xC0000503, - MD_NTSTATUS_WIN_STATUS_UNDEFINED_SCOPE = 0xC0000504, - MD_NTSTATUS_WIN_STATUS_INVALID_CAP = 0xC0000505, - MD_NTSTATUS_WIN_STATUS_NOT_GUI_PROCESS = 0xC0000506, - MD_NTSTATUS_WIN_STATUS_FAIL_FAST_EXCEPTION = 0xC0000602, - MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_REVOKED = 0xC0000603, - MD_NTSTATUS_WIN_STATUS_DYNAMIC_CODE_BLOCKED = 0xC0000604, - MD_NTSTATUS_WIN_STATUS_PORT_CLOSED = 0xC0000700, - MD_NTSTATUS_WIN_STATUS_MESSAGE_LOST = 0xC0000701, - MD_NTSTATUS_WIN_STATUS_INVALID_MESSAGE = 0xC0000702, - MD_NTSTATUS_WIN_STATUS_REQUEST_CANCELED = 0xC0000703, - MD_NTSTATUS_WIN_STATUS_RECURSIVE_DISPATCH = 0xC0000704, - MD_NTSTATUS_WIN_STATUS_LPC_RECEIVE_BUFFER_EXPECTED = 0xC0000705, - MD_NTSTATUS_WIN_STATUS_LPC_INVALID_CONNECTION_USAGE = 0xC0000706, - MD_NTSTATUS_WIN_STATUS_LPC_REQUESTS_NOT_ALLOWED = 0xC0000707, - MD_NTSTATUS_WIN_STATUS_RESOURCE_IN_USE = 0xC0000708, - MD_NTSTATUS_WIN_STATUS_HARDWARE_MEMORY_ERROR = 0xC0000709, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_HANDLE_EXCEPTION = 0xC000070A, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED = 0xC000070B, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED = 0xC000070C, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED = 0xC000070D, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED = 0xC000070E, - MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASED_DURING_OPERATION = 0xC000070F, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING = 0xC0000710, - MD_NTSTATUS_WIN_STATUS_APC_RETURNED_WHILE_IMPERSONATING = 0xC0000711, - MD_NTSTATUS_WIN_STATUS_PROCESS_IS_PROTECTED = 0xC0000712, - MD_NTSTATUS_WIN_STATUS_MCA_EXCEPTION = 0xC0000713, - MD_NTSTATUS_WIN_STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE = 0xC0000714, - MD_NTSTATUS_WIN_STATUS_SYMLINK_CLASS_DISABLED = 0xC0000715, - MD_NTSTATUS_WIN_STATUS_INVALID_IDN_NORMALIZATION = 0xC0000716, - MD_NTSTATUS_WIN_STATUS_NO_UNICODE_TRANSLATION = 0xC0000717, - MD_NTSTATUS_WIN_STATUS_ALREADY_REGISTERED = 0xC0000718, - MD_NTSTATUS_WIN_STATUS_CONTEXT_MISMATCH = 0xC0000719, - MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_HAS_COMPLETION_LIST = 0xC000071A, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_PRIORITY = 0xC000071B, - MD_NTSTATUS_WIN_STATUS_INVALID_THREAD = 0xC000071C, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_TRANSACTION = 0xC000071D, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LDR_LOCK = 0xC000071E, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LANG = 0xC000071F, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_PRI_BACK = 0xC0000720, - MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_AFFINITY = 0xC0000721, - MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_DISABLED = 0xC0000800, - MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_RENAME_IN_PROGRESS = 0xC0000801, - MD_NTSTATUS_WIN_STATUS_DISK_QUOTA_EXCEEDED = 0xC0000802, - MD_NTSTATUS_WIN_STATUS_CONTENT_BLOCKED = 0xC0000804, - MD_NTSTATUS_WIN_STATUS_BAD_CLUSTERS = 0xC0000805, - MD_NTSTATUS_WIN_STATUS_VOLUME_DIRTY = 0xC0000806, - MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_UNSUCCESSFUL = 0xC0000808, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_OVERFULL = 0xC0000809, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CORRUPTED = 0xC000080A, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UNAVAILABLE = 0xC000080B, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_DELETED_FULL = 0xC000080C, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CLEARED = 0xC000080D, - MD_NTSTATUS_WIN_STATUS_ORPHAN_NAME_EXHAUSTED = 0xC000080E, - MD_NTSTATUS_WIN_STATUS_PROACTIVE_SCAN_IN_PROGRESS = 0xC000080F, - MD_NTSTATUS_WIN_STATUS_ENCRYPTED_IO_NOT_POSSIBLE = 0xC0000810, - MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UPLEVEL_RECORDS = 0xC0000811, - MD_NTSTATUS_WIN_STATUS_FILE_CHECKED_OUT = 0xC0000901, - MD_NTSTATUS_WIN_STATUS_CHECKOUT_REQUIRED = 0xC0000902, - MD_NTSTATUS_WIN_STATUS_BAD_FILE_TYPE = 0xC0000903, - MD_NTSTATUS_WIN_STATUS_FILE_TOO_LARGE = 0xC0000904, - MD_NTSTATUS_WIN_STATUS_FORMS_AUTH_REQUIRED = 0xC0000905, - MD_NTSTATUS_WIN_STATUS_VIRUS_INFECTED = 0xC0000906, - MD_NTSTATUS_WIN_STATUS_VIRUS_DELETED = 0xC0000907, - MD_NTSTATUS_WIN_STATUS_BAD_MCFG_TABLE = 0xC0000908, - MD_NTSTATUS_WIN_STATUS_CANNOT_BREAK_OPLOCK = 0xC0000909, - MD_NTSTATUS_WIN_STATUS_BAD_KEY = 0xC000090A, - MD_NTSTATUS_WIN_STATUS_BAD_DATA = 0xC000090B, - MD_NTSTATUS_WIN_STATUS_NO_KEY = 0xC000090C, - MD_NTSTATUS_WIN_STATUS_FILE_HANDLE_REVOKED = 0xC0000910, - MD_NTSTATUS_WIN_STATUS_WOW_ASSERTION = 0xC0009898, - MD_NTSTATUS_WIN_STATUS_INVALID_SIGNATURE = 0xC000A000, - MD_NTSTATUS_WIN_STATUS_HMAC_NOT_SUPPORTED = 0xC000A001, - MD_NTSTATUS_WIN_STATUS_AUTH_TAG_MISMATCH = 0xC000A002, - MD_NTSTATUS_WIN_STATUS_INVALID_STATE_TRANSITION = 0xC000A003, - MD_NTSTATUS_WIN_STATUS_INVALID_KERNEL_INFO_VERSION = 0xC000A004, - MD_NTSTATUS_WIN_STATUS_INVALID_PEP_INFO_VERSION = 0xC000A005, - MD_NTSTATUS_WIN_STATUS_IPSEC_QUEUE_OVERFLOW = 0xC000A010, - MD_NTSTATUS_WIN_STATUS_ND_QUEUE_OVERFLOW = 0xC000A011, - MD_NTSTATUS_WIN_STATUS_HOPLIMIT_EXCEEDED = 0xC000A012, - MD_NTSTATUS_WIN_STATUS_PROTOCOL_NOT_SUPPORTED = 0xC000A013, - MD_NTSTATUS_WIN_STATUS_FASTPATH_REJECTED = 0xC000A014, - MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 0xC000A080, - MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 0xC000A081, - MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 0xC000A082, - MD_NTSTATUS_WIN_STATUS_XML_PARSE_ERROR = 0xC000A083, - MD_NTSTATUS_WIN_STATUS_XMLDSIG_ERROR = 0xC000A084, - MD_NTSTATUS_WIN_STATUS_WRONG_COMPARTMENT = 0xC000A085, - MD_NTSTATUS_WIN_STATUS_AUTHIP_FAILURE = 0xC000A086, - MD_NTSTATUS_WIN_STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = 0xC000A087, - MD_NTSTATUS_WIN_STATUS_DS_OID_NOT_FOUND = 0xC000A088, - MD_NTSTATUS_WIN_STATUS_INCORRECT_ACCOUNT_TYPE = 0xC000A089, - MD_NTSTATUS_WIN_STATUS_HASH_NOT_SUPPORTED = 0xC000A100, - MD_NTSTATUS_WIN_STATUS_HASH_NOT_PRESENT = 0xC000A101, - MD_NTSTATUS_WIN_STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 0xC000A121, - MD_NTSTATUS_WIN_STATUS_GPIO_CLIENT_INFORMATION_INVALID = 0xC000A122, - MD_NTSTATUS_WIN_STATUS_GPIO_VERSION_NOT_SUPPORTED = 0xC000A123, - MD_NTSTATUS_WIN_STATUS_GPIO_INVALID_REGISTRATION_PACKET = 0xC000A124, - MD_NTSTATUS_WIN_STATUS_GPIO_OPERATION_DENIED = 0xC000A125, - MD_NTSTATUS_WIN_STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE = 0xC000A126, - MD_NTSTATUS_WIN_STATUS_CANNOT_SWITCH_RUNLEVEL = 0xC000A141, - MD_NTSTATUS_WIN_STATUS_INVALID_RUNLEVEL_SETTING = 0xC000A142, - MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_TIMEOUT = 0xC000A143, - MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 0xC000A145, - MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_IN_PROGRESS = 0xC000A146, - MD_NTSTATUS_WIN_STATUS_NOT_APPCONTAINER = 0xC000A200, - MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_IN_APPCONTAINER = 0xC000A201, - MD_NTSTATUS_WIN_STATUS_INVALID_PACKAGE_SID_LENGTH = 0xC000A202, - MD_NTSTATUS_WIN_STATUS_APP_DATA_NOT_FOUND = 0xC000A281, - MD_NTSTATUS_WIN_STATUS_APP_DATA_EXPIRED = 0xC000A282, - MD_NTSTATUS_WIN_STATUS_APP_DATA_CORRUPT = 0xC000A283, - MD_NTSTATUS_WIN_STATUS_APP_DATA_LIMIT_EXCEEDED = 0xC000A284, - MD_NTSTATUS_WIN_STATUS_APP_DATA_REBOOT_REQUIRED = 0xC000A285, - MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED = 0xC000A2A1, - MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = 0xC000A2A2, - MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED = 0xC000A2A3, - MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = 0xC000A2A4, - MD_NTSTATUS_WIN_DBG_NO_STATE_CHANGE = 0xC0010001, - MD_NTSTATUS_WIN_DBG_APP_NOT_IDLE = 0xC0010002, - MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_BINDING = 0xC0020001, - MD_NTSTATUS_WIN_RPC_NT_WRONG_KIND_OF_BINDING = 0xC0020002, - MD_NTSTATUS_WIN_RPC_NT_INVALID_BINDING = 0xC0020003, - MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_SUPPORTED = 0xC0020004, - MD_NTSTATUS_WIN_RPC_NT_INVALID_RPC_PROTSEQ = 0xC0020005, - MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_UUID = 0xC0020006, - MD_NTSTATUS_WIN_RPC_NT_INVALID_ENDPOINT_FORMAT = 0xC0020007, - MD_NTSTATUS_WIN_RPC_NT_INVALID_NET_ADDR = 0xC0020008, - MD_NTSTATUS_WIN_RPC_NT_NO_ENDPOINT_FOUND = 0xC0020009, - MD_NTSTATUS_WIN_RPC_NT_INVALID_TIMEOUT = 0xC002000A, - MD_NTSTATUS_WIN_RPC_NT_OBJECT_NOT_FOUND = 0xC002000B, - MD_NTSTATUS_WIN_RPC_NT_ALREADY_REGISTERED = 0xC002000C, - MD_NTSTATUS_WIN_RPC_NT_TYPE_ALREADY_REGISTERED = 0xC002000D, - MD_NTSTATUS_WIN_RPC_NT_ALREADY_LISTENING = 0xC002000E, - MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS_REGISTERED = 0xC002000F, - MD_NTSTATUS_WIN_RPC_NT_NOT_LISTENING = 0xC0020010, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_MGR_TYPE = 0xC0020011, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_IF = 0xC0020012, - MD_NTSTATUS_WIN_RPC_NT_NO_BINDINGS = 0xC0020013, - MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS = 0xC0020014, - MD_NTSTATUS_WIN_RPC_NT_CANT_CREATE_ENDPOINT = 0xC0020015, - MD_NTSTATUS_WIN_RPC_NT_OUT_OF_RESOURCES = 0xC0020016, - MD_NTSTATUS_WIN_RPC_NT_SERVER_UNAVAILABLE = 0xC0020017, - MD_NTSTATUS_WIN_RPC_NT_SERVER_TOO_BUSY = 0xC0020018, - MD_NTSTATUS_WIN_RPC_NT_INVALID_NETWORK_OPTIONS = 0xC0020019, - MD_NTSTATUS_WIN_RPC_NT_NO_CALL_ACTIVE = 0xC002001A, - MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED = 0xC002001B, - MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED_DNE = 0xC002001C, - MD_NTSTATUS_WIN_RPC_NT_PROTOCOL_ERROR = 0xC002001D, - MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TRANS_SYN = 0xC002001F, - MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TYPE = 0xC0020021, - MD_NTSTATUS_WIN_RPC_NT_INVALID_TAG = 0xC0020022, - MD_NTSTATUS_WIN_RPC_NT_INVALID_BOUND = 0xC0020023, - MD_NTSTATUS_WIN_RPC_NT_NO_ENTRY_NAME = 0xC0020024, - MD_NTSTATUS_WIN_RPC_NT_INVALID_NAME_SYNTAX = 0xC0020025, - MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_NAME_SYNTAX = 0xC0020026, - MD_NTSTATUS_WIN_RPC_NT_UUID_NO_ADDRESS = 0xC0020028, - MD_NTSTATUS_WIN_RPC_NT_DUPLICATE_ENDPOINT = 0xC0020029, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_TYPE = 0xC002002A, - MD_NTSTATUS_WIN_RPC_NT_MAX_CALLS_TOO_SMALL = 0xC002002B, - MD_NTSTATUS_WIN_RPC_NT_STRING_TOO_LONG = 0xC002002C, - MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_FOUND = 0xC002002D, - MD_NTSTATUS_WIN_RPC_NT_PROCNUM_OUT_OF_RANGE = 0xC002002E, - MD_NTSTATUS_WIN_RPC_NT_BINDING_HAS_NO_AUTH = 0xC002002F, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_SERVICE = 0xC0020030, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_LEVEL = 0xC0020031, - MD_NTSTATUS_WIN_RPC_NT_INVALID_AUTH_IDENTITY = 0xC0020032, - MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHZ_SERVICE = 0xC0020033, - MD_NTSTATUS_WIN_EPT_NT_INVALID_ENTRY = 0xC0020034, - MD_NTSTATUS_WIN_EPT_NT_CANT_PERFORM_OP = 0xC0020035, - MD_NTSTATUS_WIN_EPT_NT_NOT_REGISTERED = 0xC0020036, - MD_NTSTATUS_WIN_RPC_NT_NOTHING_TO_EXPORT = 0xC0020037, - MD_NTSTATUS_WIN_RPC_NT_INCOMPLETE_NAME = 0xC0020038, - MD_NTSTATUS_WIN_RPC_NT_INVALID_VERS_OPTION = 0xC0020039, - MD_NTSTATUS_WIN_RPC_NT_NO_MORE_MEMBERS = 0xC002003A, - MD_NTSTATUS_WIN_RPC_NT_NOT_ALL_OBJS_UNEXPORTED = 0xC002003B, - MD_NTSTATUS_WIN_RPC_NT_INTERFACE_NOT_FOUND = 0xC002003C, - MD_NTSTATUS_WIN_RPC_NT_ENTRY_ALREADY_EXISTS = 0xC002003D, - MD_NTSTATUS_WIN_RPC_NT_ENTRY_NOT_FOUND = 0xC002003E, - MD_NTSTATUS_WIN_RPC_NT_NAME_SERVICE_UNAVAILABLE = 0xC002003F, - MD_NTSTATUS_WIN_RPC_NT_INVALID_NAF_ID = 0xC0020040, - MD_NTSTATUS_WIN_RPC_NT_CANNOT_SUPPORT = 0xC0020041, - MD_NTSTATUS_WIN_RPC_NT_NO_CONTEXT_AVAILABLE = 0xC0020042, - MD_NTSTATUS_WIN_RPC_NT_INTERNAL_ERROR = 0xC0020043, - MD_NTSTATUS_WIN_RPC_NT_ZERO_DIVIDE = 0xC0020044, - MD_NTSTATUS_WIN_RPC_NT_ADDRESS_ERROR = 0xC0020045, - MD_NTSTATUS_WIN_RPC_NT_FP_DIV_ZERO = 0xC0020046, - MD_NTSTATUS_WIN_RPC_NT_FP_UNDERFLOW = 0xC0020047, - MD_NTSTATUS_WIN_RPC_NT_FP_OVERFLOW = 0xC0020048, - MD_NTSTATUS_WIN_RPC_NT_CALL_IN_PROGRESS = 0xC0020049, - MD_NTSTATUS_WIN_RPC_NT_NO_MORE_BINDINGS = 0xC002004A, - MD_NTSTATUS_WIN_RPC_NT_GROUP_MEMBER_NOT_FOUND = 0xC002004B, - MD_NTSTATUS_WIN_EPT_NT_CANT_CREATE = 0xC002004C, - MD_NTSTATUS_WIN_RPC_NT_INVALID_OBJECT = 0xC002004D, - MD_NTSTATUS_WIN_RPC_NT_NO_INTERFACES = 0xC002004F, - MD_NTSTATUS_WIN_RPC_NT_CALL_CANCELLED = 0xC0020050, - MD_NTSTATUS_WIN_RPC_NT_BINDING_INCOMPLETE = 0xC0020051, - MD_NTSTATUS_WIN_RPC_NT_COMM_FAILURE = 0xC0020052, - MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_AUTHN_LEVEL = 0xC0020053, - MD_NTSTATUS_WIN_RPC_NT_NO_PRINC_NAME = 0xC0020054, - MD_NTSTATUS_WIN_RPC_NT_NOT_RPC_ERROR = 0xC0020055, - MD_NTSTATUS_WIN_RPC_NT_SEC_PKG_ERROR = 0xC0020057, - MD_NTSTATUS_WIN_RPC_NT_NOT_CANCELLED = 0xC0020058, - MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_HANDLE = 0xC0020062, - MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_CALL = 0xC0020063, - MD_NTSTATUS_WIN_RPC_NT_PROXY_ACCESS_DENIED = 0xC0020064, - MD_NTSTATUS_WIN_RPC_NT_COOKIE_AUTH_FAILED = 0xC0020065, - MD_NTSTATUS_WIN_RPC_NT_NO_MORE_ENTRIES = 0xC0030001, - MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_OPEN_FAIL = 0xC0030002, - MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_SHORT_FILE = 0xC0030003, - MD_NTSTATUS_WIN_RPC_NT_SS_IN_NULL_CONTEXT = 0xC0030004, - MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_MISMATCH = 0xC0030005, - MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_DAMAGED = 0xC0030006, - MD_NTSTATUS_WIN_RPC_NT_SS_HANDLES_MISMATCH = 0xC0030007, - MD_NTSTATUS_WIN_RPC_NT_SS_CANNOT_GET_CALL_HANDLE = 0xC0030008, - MD_NTSTATUS_WIN_RPC_NT_NULL_REF_POINTER = 0xC0030009, - MD_NTSTATUS_WIN_RPC_NT_ENUM_VALUE_OUT_OF_RANGE = 0xC003000A, - MD_NTSTATUS_WIN_RPC_NT_BYTE_COUNT_TOO_SMALL = 0xC003000B, - MD_NTSTATUS_WIN_RPC_NT_BAD_STUB_DATA = 0xC003000C, - MD_NTSTATUS_WIN_RPC_NT_INVALID_ES_ACTION = 0xC0030059, - MD_NTSTATUS_WIN_RPC_NT_WRONG_ES_VERSION = 0xC003005A, - MD_NTSTATUS_WIN_RPC_NT_WRONG_STUB_VERSION = 0xC003005B, - MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OBJECT = 0xC003005C, - MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OPERATION = 0xC003005D, - MD_NTSTATUS_WIN_RPC_NT_WRONG_PIPE_VERSION = 0xC003005E, - MD_NTSTATUS_WIN_RPC_NT_PIPE_CLOSED = 0xC003005F, - MD_NTSTATUS_WIN_RPC_NT_PIPE_DISCIPLINE_ERROR = 0xC0030060, - MD_NTSTATUS_WIN_RPC_NT_PIPE_EMPTY = 0xC0030061, - MD_NTSTATUS_WIN_STATUS_PNP_BAD_MPS_TABLE = 0xC0040035, - MD_NTSTATUS_WIN_STATUS_PNP_TRANSLATION_FAILED = 0xC0040036, - MD_NTSTATUS_WIN_STATUS_PNP_IRQ_TRANSLATION_FAILED = 0xC0040037, - MD_NTSTATUS_WIN_STATUS_PNP_INVALID_ID = 0xC0040038, - MD_NTSTATUS_WIN_STATUS_IO_REISSUE_AS_CACHED = 0xC0040039, - MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_INVALID = 0xC00A0001, - MD_NTSTATUS_WIN_STATUS_CTX_INVALID_PD = 0xC00A0002, - MD_NTSTATUS_WIN_STATUS_CTX_PD_NOT_FOUND = 0xC00A0003, - MD_NTSTATUS_WIN_STATUS_CTX_CLOSE_PENDING = 0xC00A0006, - MD_NTSTATUS_WIN_STATUS_CTX_NO_OUTBUF = 0xC00A0007, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_INF_NOT_FOUND = 0xC00A0008, - MD_NTSTATUS_WIN_STATUS_CTX_INVALID_MODEMNAME = 0xC00A0009, - MD_NTSTATUS_WIN_STATUS_CTX_RESPONSE_ERROR = 0xC00A000A, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_TIMEOUT = 0xC00A000B, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_CARRIER = 0xC00A000C, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE = 0xC00A000D, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_BUSY = 0xC00A000E, - MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_VOICE = 0xC00A000F, - MD_NTSTATUS_WIN_STATUS_CTX_TD_ERROR = 0xC00A0010, - MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_CLIENT_INVALID = 0xC00A0012, - MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_NOT_AVAILABLE = 0xC00A0013, - MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_EXPIRED = 0xC00A0014, - MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NOT_FOUND = 0xC00A0015, - MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_COLLISION = 0xC00A0016, - MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_BUSY = 0xC00A0017, - MD_NTSTATUS_WIN_STATUS_CTX_BAD_VIDEO_MODE = 0xC00A0018, - MD_NTSTATUS_WIN_STATUS_CTX_GRAPHICS_INVALID = 0xC00A0022, - MD_NTSTATUS_WIN_STATUS_CTX_NOT_CONSOLE = 0xC00A0024, - MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_QUERY_TIMEOUT = 0xC00A0026, - MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_DISCONNECT = 0xC00A0027, - MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_CONNECT = 0xC00A0028, - MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DENIED = 0xC00A002A, - MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_ACCESS_DENIED = 0xC00A002B, - MD_NTSTATUS_WIN_STATUS_CTX_INVALID_WD = 0xC00A002E, - MD_NTSTATUS_WIN_STATUS_CTX_WD_NOT_FOUND = 0xC00A002F, - MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_INVALID = 0xC00A0030, - MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DISABLED = 0xC00A0031, - MD_NTSTATUS_WIN_STATUS_RDP_PROTOCOL_ERROR = 0xC00A0032, - MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_NOT_SET = 0xC00A0033, - MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_IN_USE = 0xC00A0034, - MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 0xC00A0035, - MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_NOT_RUNNING = 0xC00A0036, - MD_NTSTATUS_WIN_STATUS_CTX_LOGON_DISABLED = 0xC00A0037, - MD_NTSTATUS_WIN_STATUS_CTX_SECURITY_LAYER_ERROR = 0xC00A0038, - MD_NTSTATUS_WIN_STATUS_TS_INCOMPATIBLE_SESSIONS = 0xC00A0039, - MD_NTSTATUS_WIN_STATUS_TS_VIDEO_SUBSYSTEM_ERROR = 0xC00A003A, - MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_FOUND = 0xC00B0001, - MD_NTSTATUS_WIN_STATUS_MUI_INVALID_FILE = 0xC00B0002, - MD_NTSTATUS_WIN_STATUS_MUI_INVALID_RC_CONFIG = 0xC00B0003, - MD_NTSTATUS_WIN_STATUS_MUI_INVALID_LOCALE_NAME = 0xC00B0004, - MD_NTSTATUS_WIN_STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME = 0xC00B0005, - MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_LOADED = 0xC00B0006, - MD_NTSTATUS_WIN_STATUS_RESOURCE_ENUM_USER_STOP = 0xC00B0007, - MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NODE = 0xC0130001, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_EXISTS = 0xC0130002, - MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_IN_PROGRESS = 0xC0130003, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_FOUND = 0xC0130004, - MD_NTSTATUS_WIN_STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND = 0xC0130005, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_EXISTS = 0xC0130006, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_FOUND = 0xC0130007, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_EXISTS = 0xC0130008, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_NOT_FOUND = 0xC0130009, - MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_REQUEST = 0xC013000A, - MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK_PROVIDER = 0xC013000B, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_DOWN = 0xC013000C, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UNREACHABLE = 0xC013000D, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_MEMBER = 0xC013000E, - MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS = 0xC013000F, - MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK = 0xC0130010, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_NET_ADAPTERS = 0xC0130011, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UP = 0xC0130012, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_PAUSED = 0xC0130013, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_PAUSED = 0xC0130014, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_SECURITY_CONTEXT = 0xC0130015, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_INTERNAL = 0xC0130016, - MD_NTSTATUS_WIN_STATUS_CLUSTER_POISONED = 0xC0130017, - MD_NTSTATUS_WIN_STATUS_CLUSTER_NON_CSV_PATH = 0xC0130018, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL = 0xC0130019, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS = 0xC0130020, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR = 0xC0130021, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_REDIRECTED = 0xC0130022, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NOT_REDIRECTED = 0xC0130023, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING = 0xC0130024, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS = 0xC0130025, - MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL = 0xC0130026, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OPCODE = 0xC0140001, - MD_NTSTATUS_WIN_STATUS_ACPI_STACK_OVERFLOW = 0xC0140002, - MD_NTSTATUS_WIN_STATUS_ACPI_ASSERT_FAILED = 0xC0140003, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_INDEX = 0xC0140004, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGUMENT = 0xC0140005, - MD_NTSTATUS_WIN_STATUS_ACPI_FATAL = 0xC0140006, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_SUPERNAME = 0xC0140007, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGTYPE = 0xC0140008, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OBJTYPE = 0xC0140009, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TARGETTYPE = 0xC014000A, - MD_NTSTATUS_WIN_STATUS_ACPI_INCORRECT_ARGUMENT_COUNT = 0xC014000B, - MD_NTSTATUS_WIN_STATUS_ACPI_ADDRESS_NOT_MAPPED = 0xC014000C, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_EVENTTYPE = 0xC014000D, - MD_NTSTATUS_WIN_STATUS_ACPI_HANDLER_COLLISION = 0xC014000E, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_DATA = 0xC014000F, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_REGION = 0xC0140010, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ACCESS_SIZE = 0xC0140011, - MD_NTSTATUS_WIN_STATUS_ACPI_ACQUIRE_GLOBAL_LOCK = 0xC0140012, - MD_NTSTATUS_WIN_STATUS_ACPI_ALREADY_INITIALIZED = 0xC0140013, - MD_NTSTATUS_WIN_STATUS_ACPI_NOT_INITIALIZED = 0xC0140014, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_MUTEX_LEVEL = 0xC0140015, - MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNED = 0xC0140016, - MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNER = 0xC0140017, - MD_NTSTATUS_WIN_STATUS_ACPI_RS_ACCESS = 0xC0140018, - MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TABLE = 0xC0140019, - MD_NTSTATUS_WIN_STATUS_ACPI_REG_HANDLER_FAILED = 0xC0140020, - MD_NTSTATUS_WIN_STATUS_ACPI_POWER_REQUEST_FAILED = 0xC0140021, - MD_NTSTATUS_WIN_STATUS_SXS_SECTION_NOT_FOUND = 0xC0150001, - MD_NTSTATUS_WIN_STATUS_SXS_CANT_GEN_ACTCTX = 0xC0150002, - MD_NTSTATUS_WIN_STATUS_SXS_INVALID_ACTCTXDATA_FORMAT = 0xC0150003, - MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_NOT_FOUND = 0xC0150004, - MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_FORMAT_ERROR = 0xC0150005, - MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_PARSE_ERROR = 0xC0150006, - MD_NTSTATUS_WIN_STATUS_SXS_ACTIVATION_CONTEXT_DISABLED = 0xC0150007, - MD_NTSTATUS_WIN_STATUS_SXS_KEY_NOT_FOUND = 0xC0150008, - MD_NTSTATUS_WIN_STATUS_SXS_VERSION_CONFLICT = 0xC0150009, - MD_NTSTATUS_WIN_STATUS_SXS_WRONG_SECTION_TYPE = 0xC015000A, - MD_NTSTATUS_WIN_STATUS_SXS_THREAD_QUERIES_DISABLED = 0xC015000B, - MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_MISSING = 0xC015000C, - MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET = 0xC015000E, - MD_NTSTATUS_WIN_STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F, - MD_NTSTATUS_WIN_STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010, - MD_NTSTATUS_WIN_STATUS_SXS_MULTIPLE_DEACTIVATION = 0xC0150011, - MD_NTSTATUS_WIN_STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 0xC0150012, - MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_TERMINATION_REQUESTED = 0xC0150013, - MD_NTSTATUS_WIN_STATUS_SXS_CORRUPT_ACTIVATION_STACK = 0xC0150014, - MD_NTSTATUS_WIN_STATUS_SXS_CORRUPTION = 0xC0150015, - MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 0xC0150016, - MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 0xC0150017, - MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 0xC0150018, - MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_PARSE_ERROR = 0xC0150019, - MD_NTSTATUS_WIN_STATUS_SXS_COMPONENT_STORE_CORRUPT = 0xC015001A, - MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISMATCH = 0xC015001B, - MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 0xC015001C, - MD_NTSTATUS_WIN_STATUS_SXS_IDENTITIES_DIFFERENT = 0xC015001D, - MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 0xC015001E, - MD_NTSTATUS_WIN_STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY = 0xC015001F, - MD_NTSTATUS_WIN_STATUS_ADVANCED_INSTALLER_FAILED = 0xC0150020, - MD_NTSTATUS_WIN_STATUS_XML_ENCODING_MISMATCH = 0xC0150021, - MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_TOO_BIG = 0xC0150022, - MD_NTSTATUS_WIN_STATUS_SXS_SETTING_NOT_REGISTERED = 0xC0150023, - MD_NTSTATUS_WIN_STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 0xC0150024, - MD_NTSTATUS_WIN_STATUS_SMI_PRIMITIVE_INSTALLER_FAILED = 0xC0150025, - MD_NTSTATUS_WIN_STATUS_GENERIC_COMMAND_FAILED = 0xC0150026, - MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISSING = 0xC0150027, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_CONFLICT = 0xC0190001, - MD_NTSTATUS_WIN_STATUS_INVALID_TRANSACTION = 0xC0190002, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ACTIVE = 0xC0190003, - MD_NTSTATUS_WIN_STATUS_TM_INITIALIZATION_FAILED = 0xC0190004, - MD_NTSTATUS_WIN_STATUS_RM_NOT_ACTIVE = 0xC0190005, - MD_NTSTATUS_WIN_STATUS_RM_METADATA_CORRUPT = 0xC0190006, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_JOINED = 0xC0190007, - MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_RM = 0xC0190008, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE = 0xC019000A, - MD_NTSTATUS_WIN_STATUS_LOG_RESIZE_INVALID_SIZE = 0xC019000B, - MD_NTSTATUS_WIN_STATUS_REMOTE_FILE_VERSION_MISMATCH = 0xC019000C, - MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_ALREADY_EXISTS = 0xC019000F, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_PROPAGATION_FAILED = 0xC0190010, - MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_NOT_FOUND = 0xC0190011, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_SUPERIOR_EXISTS = 0xC0190012, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUEST_NOT_VALID = 0xC0190013, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_REQUESTED = 0xC0190014, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_ABORTED = 0xC0190015, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_COMMITTED = 0xC0190016, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER = 0xC0190017, - MD_NTSTATUS_WIN_STATUS_CURRENT_TRANSACTION_NOT_VALID = 0xC0190018, - MD_NTSTATUS_WIN_STATUS_LOG_GROWTH_FAILED = 0xC0190019, - MD_NTSTATUS_WIN_STATUS_OBJECT_NO_LONGER_EXISTS = 0xC0190021, - MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_FOUND = 0xC0190022, - MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_VALID = 0xC0190023, - MD_NTSTATUS_WIN_STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = 0xC0190024, - MD_NTSTATUS_WIN_STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = 0xC0190025, - MD_NTSTATUS_WIN_STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS = 0xC0190026, - MD_NTSTATUS_WIN_STATUS_HANDLE_NO_LONGER_VALID = 0xC0190028, - MD_NTSTATUS_WIN_STATUS_LOG_CORRUPTION_DETECTED = 0xC0190030, - MD_NTSTATUS_WIN_STATUS_RM_DISCONNECTED = 0xC0190032, - MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_SUPERIOR = 0xC0190033, - MD_NTSTATUS_WIN_STATUS_FILE_IDENTITY_NOT_PERSISTENT = 0xC0190036, - MD_NTSTATUS_WIN_STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = 0xC0190037, - MD_NTSTATUS_WIN_STATUS_CANT_CROSS_RM_BOUNDARY = 0xC0190038, - MD_NTSTATUS_WIN_STATUS_TXF_DIR_NOT_EMPTY = 0xC0190039, - MD_NTSTATUS_WIN_STATUS_INDOUBT_TRANSACTIONS_EXIST = 0xC019003A, - MD_NTSTATUS_WIN_STATUS_TM_VOLATILE = 0xC019003B, - MD_NTSTATUS_WIN_STATUS_ROLLBACK_TIMER_EXPIRED = 0xC019003C, - MD_NTSTATUS_WIN_STATUS_TXF_ATTRIBUTE_CORRUPT = 0xC019003D, - MD_NTSTATUS_WIN_STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION = 0xC019003E, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED = 0xC019003F, - MD_NTSTATUS_WIN_STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = 0xC0190040, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUIRED_PROMOTION = 0xC0190043, - MD_NTSTATUS_WIN_STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION = 0xC0190044, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_NOT_FROZEN = 0xC0190045, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_FREEZE_IN_PROGRESS = 0xC0190046, - MD_NTSTATUS_WIN_STATUS_NOT_SNAPSHOT_VOLUME = 0xC0190047, - MD_NTSTATUS_WIN_STATUS_NO_SAVEPOINT_WITH_OPEN_FILES = 0xC0190048, - MD_NTSTATUS_WIN_STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION = 0xC0190049, - MD_NTSTATUS_WIN_STATUS_TM_IDENTITY_MISMATCH = 0xC019004A, - MD_NTSTATUS_WIN_STATUS_FLOATED_SECTION = 0xC019004B, - MD_NTSTATUS_WIN_STATUS_CANNOT_ACCEPT_TRANSACTED_WORK = 0xC019004C, - MD_NTSTATUS_WIN_STATUS_CANNOT_ABORT_TRANSACTIONS = 0xC019004D, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_FOUND = 0xC019004E, - MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_NOT_FOUND = 0xC019004F, - MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_FOUND = 0xC0190050, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_FOUND = 0xC0190051, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_ONLINE = 0xC0190052, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = 0xC0190053, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ROOT = 0xC0190054, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_OBJECT_EXPIRED = 0xC0190055, - MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = 0xC0190056, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED = 0xC0190057, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_RECORD_TOO_LONG = 0xC0190058, - MD_NTSTATUS_WIN_STATUS_NO_LINK_TRACKING_IN_TRANSACTION = 0xC0190059, - MD_NTSTATUS_WIN_STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = 0xC019005A, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_INTEGRITY_VIOLATED = 0xC019005B, - MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH = 0xC019005C, - MD_NTSTATUS_WIN_STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = 0xC019005D, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_MUST_WRITETHROUGH = 0xC019005E, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_SUPERIOR = 0xC019005F, - MD_NTSTATUS_WIN_STATUS_EXPIRED_HANDLE = 0xC0190060, - MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ENLISTED = 0xC0190061, - MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_INVALID = 0xC01A0001, - MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_PARITY_INVALID = 0xC01A0002, - MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_REMAPPED = 0xC01A0003, - MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INCOMPLETE = 0xC01A0004, - MD_NTSTATUS_WIN_STATUS_LOG_INVALID_RANGE = 0xC01A0005, - MD_NTSTATUS_WIN_STATUS_LOG_BLOCKS_EXHAUSTED = 0xC01A0006, - MD_NTSTATUS_WIN_STATUS_LOG_READ_CONTEXT_INVALID = 0xC01A0007, - MD_NTSTATUS_WIN_STATUS_LOG_RESTART_INVALID = 0xC01A0008, - MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_VERSION = 0xC01A0009, - MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INVALID = 0xC01A000A, - MD_NTSTATUS_WIN_STATUS_LOG_READ_MODE_INVALID = 0xC01A000B, - MD_NTSTATUS_WIN_STATUS_LOG_METADATA_CORRUPT = 0xC01A000D, - MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INVALID = 0xC01A000E, - MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INCONSISTENT = 0xC01A000F, - MD_NTSTATUS_WIN_STATUS_LOG_RESERVATION_INVALID = 0xC01A0010, - MD_NTSTATUS_WIN_STATUS_LOG_CANT_DELETE = 0xC01A0011, - MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_LIMIT_EXCEEDED = 0xC01A0012, - MD_NTSTATUS_WIN_STATUS_LOG_START_OF_LOG = 0xC01A0013, - MD_NTSTATUS_WIN_STATUS_LOG_POLICY_ALREADY_INSTALLED = 0xC01A0014, - MD_NTSTATUS_WIN_STATUS_LOG_POLICY_NOT_INSTALLED = 0xC01A0015, - MD_NTSTATUS_WIN_STATUS_LOG_POLICY_INVALID = 0xC01A0016, - MD_NTSTATUS_WIN_STATUS_LOG_POLICY_CONFLICT = 0xC01A0017, - MD_NTSTATUS_WIN_STATUS_LOG_PINNED_ARCHIVE_TAIL = 0xC01A0018, - MD_NTSTATUS_WIN_STATUS_LOG_RECORD_NONEXISTENT = 0xC01A0019, - MD_NTSTATUS_WIN_STATUS_LOG_RECORDS_RESERVED_INVALID = 0xC01A001A, - MD_NTSTATUS_WIN_STATUS_LOG_SPACE_RESERVED_INVALID = 0xC01A001B, - MD_NTSTATUS_WIN_STATUS_LOG_TAIL_INVALID = 0xC01A001C, - MD_NTSTATUS_WIN_STATUS_LOG_FULL = 0xC01A001D, - MD_NTSTATUS_WIN_STATUS_LOG_MULTIPLEXED = 0xC01A001E, - MD_NTSTATUS_WIN_STATUS_LOG_DEDICATED = 0xC01A001F, - MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS = 0xC01A0020, - MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_IN_PROGRESS = 0xC01A0021, - MD_NTSTATUS_WIN_STATUS_LOG_EPHEMERAL = 0xC01A0022, - MD_NTSTATUS_WIN_STATUS_LOG_NOT_ENOUGH_CONTAINERS = 0xC01A0023, - MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_ALREADY_REGISTERED = 0xC01A0024, - MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_NOT_REGISTERED = 0xC01A0025, - MD_NTSTATUS_WIN_STATUS_LOG_FULL_HANDLER_IN_PROGRESS = 0xC01A0026, - MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_READ_FAILED = 0xC01A0027, - MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_WRITE_FAILED = 0xC01A0028, - MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_OPEN_FAILED = 0xC01A0029, - MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_STATE_INVALID = 0xC01A002A, - MD_NTSTATUS_WIN_STATUS_LOG_STATE_INVALID = 0xC01A002B, - MD_NTSTATUS_WIN_STATUS_LOG_PINNED = 0xC01A002C, - MD_NTSTATUS_WIN_STATUS_LOG_METADATA_FLUSH_FAILED = 0xC01A002D, - MD_NTSTATUS_WIN_STATUS_LOG_INCONSISTENT_SECURITY = 0xC01A002E, - MD_NTSTATUS_WIN_STATUS_LOG_APPENDED_FLUSH_FAILED = 0xC01A002F, - MD_NTSTATUS_WIN_STATUS_LOG_PINNED_RESERVATION = 0xC01A0030, - MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD = 0xC01B00EA, - MD_NTSTATUS_WIN_STATUS_FLT_NO_HANDLER_DEFINED = 0xC01C0001, - MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_DEFINED = 0xC01C0002, - MD_NTSTATUS_WIN_STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST = 0xC01C0003, - MD_NTSTATUS_WIN_STATUS_FLT_DISALLOW_FAST_IO = 0xC01C0004, - MD_NTSTATUS_WIN_STATUS_FLT_INVALID_NAME_REQUEST = 0xC01C0005, - MD_NTSTATUS_WIN_STATUS_FLT_NOT_SAFE_TO_POST_OPERATION = 0xC01C0006, - MD_NTSTATUS_WIN_STATUS_FLT_NOT_INITIALIZED = 0xC01C0007, - MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_READY = 0xC01C0008, - MD_NTSTATUS_WIN_STATUS_FLT_POST_OPERATION_CLEANUP = 0xC01C0009, - MD_NTSTATUS_WIN_STATUS_FLT_INTERNAL_ERROR = 0xC01C000A, - MD_NTSTATUS_WIN_STATUS_FLT_DELETING_OBJECT = 0xC01C000B, - MD_NTSTATUS_WIN_STATUS_FLT_MUST_BE_NONPAGED_POOL = 0xC01C000C, - MD_NTSTATUS_WIN_STATUS_FLT_DUPLICATE_ENTRY = 0xC01C000D, - MD_NTSTATUS_WIN_STATUS_FLT_CBDQ_DISABLED = 0xC01C000E, - MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_ATTACH = 0xC01C000F, - MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_DETACH = 0xC01C0010, - MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_ALTITUDE_COLLISION = 0xC01C0011, - MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NAME_COLLISION = 0xC01C0012, - MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_FOUND = 0xC01C0013, - MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_NOT_FOUND = 0xC01C0014, - MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NOT_FOUND = 0xC01C0015, - MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND = 0xC01C0016, - MD_NTSTATUS_WIN_STATUS_FLT_INVALID_CONTEXT_REGISTRATION = 0xC01C0017, - MD_NTSTATUS_WIN_STATUS_FLT_NAME_CACHE_MISS = 0xC01C0018, - MD_NTSTATUS_WIN_STATUS_FLT_NO_DEVICE_OBJECT = 0xC01C0019, - MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_ALREADY_MOUNTED = 0xC01C001A, - MD_NTSTATUS_WIN_STATUS_FLT_ALREADY_ENLISTED = 0xC01C001B, - MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_LINKED = 0xC01C001C, - MD_NTSTATUS_WIN_STATUS_FLT_NO_WAITER_FOR_REPLY = 0xC01C0020, - MD_NTSTATUS_WIN_STATUS_FLT_REGISTRATION_BUSY = 0xC01C0023, - MD_NTSTATUS_WIN_STATUS_MONITOR_NO_DESCRIPTOR = 0xC01D0001, - MD_NTSTATUS_WIN_STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = 0xC01D0002, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = 0xC01D0003, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK = 0xC01D0004, - MD_NTSTATUS_WIN_STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = 0xC01D0005, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = 0xC01D0006, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = 0xC01D0007, - MD_NTSTATUS_WIN_STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA = 0xC01D0008, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK = 0xC01D0009, - MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_MANUFACTURE_DATE = 0xC01D000A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = 0xC01E0000, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER = 0xC01E0001, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER = 0xC01E0002, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_WAS_RESET = 0xC01E0003, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DRIVER_MODEL = 0xC01E0004, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_MODE_CHANGED = 0xC01E0005, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_OCCLUDED = 0xC01E0006, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_DENIED = 0xC01E0007, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANNOTCOLORCONVERT = 0xC01E0008, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DRIVER_MISMATCH = 0xC01E0009, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED = 0xC01E000B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_UNOCCLUDED = 0xC01E000C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE = 0xC01E000D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED = 0xC01E000E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDEO_MEMORY = 0xC01E0100, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_LOCK_MEMORY = 0xC01E0101, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_BUSY = 0xC01E0102, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOO_MANY_REFERENCES = 0xC01E0103, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_LATER = 0xC01E0104, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_NOW = 0xC01E0105, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_INVALID = 0xC01E0106, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = 0xC01E0107, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = 0xC01E0108, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = 0xC01E0109, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE = 0xC01E0110, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = 0xC01E0111, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CLOSED = 0xC01E0112, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE = 0xC01E0113, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE = 0xC01E0114, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE = 0xC01E0115, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST = 0xC01E0116, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = 0xC01E0200, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY = 0xC01E0300, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = 0xC01E0301, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = 0xC01E0302, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN = 0xC01E0303, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = 0xC01E0304, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = 0xC01E0305, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = 0xC01E0306, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = 0xC01E0308, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET = 0xC01E0309, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_FREQUENCY = 0xC01E030A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ACTIVE_REGION = 0xC01E030B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_TOTAL_REGION = 0xC01E030C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = 0xC01E0310, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = 0xC01E0311, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = 0xC01E0312, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = 0xC01E0313, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET = 0xC01E0314, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = 0xC01E0315, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = 0xC01E0316, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET = 0xC01E0317, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ALREADY_IN_SET = 0xC01E0318, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = 0xC01E0319, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = 0xC01E031A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = 0xC01E031B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = 0xC01E031C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = 0xC01E031D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = 0xC01E031F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_MODESET = 0xC01E0320, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = 0xC01E0321, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = 0xC01E0322, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = 0xC01E0323, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = 0xC01E0324, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = 0xC01E0325, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = 0xC01E0326, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY = 0xC01E0327, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = 0xC01E0328, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = 0xC01E0329, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET = 0xC01E032A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR = 0xC01E032B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = 0xC01E032C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = 0xC01E032D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = 0xC01E032E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = 0xC01E032F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_RESOURCES_NOT_RELATED = 0xC01E0330, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = 0xC01E0331, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = 0xC01E0332, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = 0xC01E0333, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = 0xC01E0334, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDPNMGR = 0xC01E0335, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_ACTIVE_VIDPN = 0xC01E0336, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY = 0xC01E0337, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NOT_CONNECTED = 0xC01E0338, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = 0xC01E0339, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = 0xC01E033A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE = 0xC01E033B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_STRIDE = 0xC01E033C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELFORMAT = 0xC01E033D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COLORBASIS = 0xC01E033E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = 0xC01E033F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = 0xC01E0340, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = 0xC01E0341, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = 0xC01E0342, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = 0xC01E0343, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = 0xC01E0344, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = 0xC01E0345, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = 0xC01E0346, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_GAMMA_RAMP = 0xC01E0347, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = 0xC01E0348, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = 0xC01E0349, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_IN_MODESET = 0xC01E034A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = 0xC01E034D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE = 0xC01E034E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE = 0xC01E034F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = 0xC01E0350, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING = 0xC01E0352, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = 0xC01E0353, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = 0xC01E0354, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = 0xC01E0355, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = 0xC01E0356, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = 0xC01E0357, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = 0xC01E0358, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED = 0xC01E0359, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = 0xC01E035A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_CLIENT_TYPE = 0xC01E035B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET = 0xC01E035C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = 0xC01E0400, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = 0xC01E0401, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER = 0xC01E0430, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED = 0xC01E0431, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = 0xC01E0432, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY = 0xC01E0433, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED = 0xC01E0434, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = 0xC01E0435, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = 0xC01E0436, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER = 0xC01E0438, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = 0xC01E043B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NOT_SUPPORTED = 0xC01E0500, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_COPP_NOT_SUPPORTED = 0xC01E0501, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_UAB_NOT_SUPPORTED = 0xC01E0502, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = 0xC01E0503, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST = 0xC01E0505, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INTERNAL_ERROR = 0xC01E050B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_HANDLE = 0xC01E050C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = 0xC01E050E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED = 0xC01E050F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED = 0xC01E0510, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_HFS_FAILED = 0xC01E0511, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_SRM = 0xC01E0512, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = 0xC01E0513, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = 0xC01E0514, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = 0xC01E0515, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = 0xC01E0516, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = 0xC01E0517, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = 0xC01E0518, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS = 0xC01E051A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = 0xC01E051C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = 0xC01E051D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = 0xC01E051E, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = 0xC01E051F, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = 0xC01E0520, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = 0xC01E0521, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_NOT_SUPPORTED = 0xC01E0580, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = 0xC01E0581, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = 0xC01E0582, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA = 0xC01E0583, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = 0xC01E0584, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_DATA = 0xC01E0585, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = 0xC01E0586, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING = 0xC01E0587, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MCA_INTERNAL_ERROR = 0xC01E0588, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = 0xC01E0589, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = 0xC01E058A, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = 0xC01E058B, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = 0xC01E058C, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS = 0xC01E058D, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = 0xC01E05E0, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = 0xC01E05E1, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = 0xC01E05E2, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = 0xC01E05E3, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_POINTER = 0xC01E05E4, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = 0xC01E05E5, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = 0xC01E05E6, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_INTERNAL_ERROR = 0xC01E05E7, - MD_NTSTATUS_WIN_STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = 0xC01E05E8, - MD_NTSTATUS_WIN_STATUS_FVE_LOCKED_VOLUME = 0xC0210000, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_ENCRYPTED = 0xC0210001, - MD_NTSTATUS_WIN_STATUS_FVE_BAD_INFORMATION = 0xC0210002, - MD_NTSTATUS_WIN_STATUS_FVE_TOO_SMALL = 0xC0210003, - MD_NTSTATUS_WIN_STATUS_FVE_FAILED_WRONG_FS = 0xC0210004, - MD_NTSTATUS_WIN_STATUS_FVE_BAD_PARTITION_SIZE = 0xC0210005, - MD_NTSTATUS_WIN_STATUS_FVE_FS_NOT_EXTENDED = 0xC0210006, - MD_NTSTATUS_WIN_STATUS_FVE_FS_MOUNTED = 0xC0210007, - MD_NTSTATUS_WIN_STATUS_FVE_NO_LICENSE = 0xC0210008, - MD_NTSTATUS_WIN_STATUS_FVE_ACTION_NOT_ALLOWED = 0xC0210009, - MD_NTSTATUS_WIN_STATUS_FVE_BAD_DATA = 0xC021000A, - MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_NOT_BOUND = 0xC021000B, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_DATA_VOLUME = 0xC021000C, - MD_NTSTATUS_WIN_STATUS_FVE_CONV_READ_ERROR = 0xC021000D, - MD_NTSTATUS_WIN_STATUS_FVE_CONV_WRITE_ERROR = 0xC021000E, - MD_NTSTATUS_WIN_STATUS_FVE_OVERLAPPED_UPDATE = 0xC021000F, - MD_NTSTATUS_WIN_STATUS_FVE_FAILED_SECTOR_SIZE = 0xC0210010, - MD_NTSTATUS_WIN_STATUS_FVE_FAILED_AUTHENTICATION = 0xC0210011, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_OS_VOLUME = 0xC0210012, - MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NOT_FOUND = 0xC0210013, - MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_INVALID = 0xC0210014, - MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NO_VMK = 0xC0210015, - MD_NTSTATUS_WIN_STATUS_FVE_TPM_DISABLED = 0xC0210016, - MD_NTSTATUS_WIN_STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO = 0xC0210017, - MD_NTSTATUS_WIN_STATUS_FVE_TPM_INVALID_PCR = 0xC0210018, - MD_NTSTATUS_WIN_STATUS_FVE_TPM_NO_VMK = 0xC0210019, - MD_NTSTATUS_WIN_STATUS_FVE_PIN_INVALID = 0xC021001A, - MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_APPLICATION = 0xC021001B, - MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_CONFIG = 0xC021001C, - MD_NTSTATUS_WIN_STATUS_FVE_DEBUGGER_ENABLED = 0xC021001D, - MD_NTSTATUS_WIN_STATUS_FVE_DRY_RUN_FAILED = 0xC021001E, - MD_NTSTATUS_WIN_STATUS_FVE_BAD_METADATA_POINTER = 0xC021001F, - MD_NTSTATUS_WIN_STATUS_FVE_OLD_METADATA_COPY = 0xC0210020, - MD_NTSTATUS_WIN_STATUS_FVE_REBOOT_REQUIRED = 0xC0210021, - MD_NTSTATUS_WIN_STATUS_FVE_RAW_ACCESS = 0xC0210022, - MD_NTSTATUS_WIN_STATUS_FVE_RAW_BLOCKED = 0xC0210023, - MD_NTSTATUS_WIN_STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY = 0xC0210024, - MD_NTSTATUS_WIN_STATUS_FVE_MOR_FAILED = 0xC0210025, - MD_NTSTATUS_WIN_STATUS_FVE_NO_FEATURE_LICENSE = 0xC0210026, - MD_NTSTATUS_WIN_STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = 0xC0210027, - MD_NTSTATUS_WIN_STATUS_FVE_CONV_RECOVERY_FAILED = 0xC0210028, - MD_NTSTATUS_WIN_STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG = 0xC0210029, - MD_NTSTATUS_WIN_STATUS_FVE_INVALID_DATUM_TYPE = 0xC021002A, - MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_TOO_SMALL = 0xC0210030, - MD_NTSTATUS_WIN_STATUS_FVE_ENH_PIN_INVALID = 0xC0210031, - MD_NTSTATUS_WIN_STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210032, - MD_NTSTATUS_WIN_STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210033, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK = 0xC0210034, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CLUSTER = 0xC0210035, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING = 0xC0210036, - MD_NTSTATUS_WIN_STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE = 0xC0210037, - MD_NTSTATUS_WIN_STATUS_FVE_EDRIVE_DRY_RUN_FAILED = 0xC0210038, - MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_DISABLED = 0xC0210039, - MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_CONFIG_CHANGE = 0xC021003A, - MD_NTSTATUS_WIN_STATUS_FVE_DEVICE_LOCKEDOUT = 0xC021003B, - MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT = 0xC021003C, - MD_NTSTATUS_WIN_STATUS_FVE_NOT_DE_VOLUME = 0xC021003D, - MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_DISABLED = 0xC021003E, - MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED = 0xC021003F, - MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOT_FOUND = 0xC0220001, - MD_NTSTATUS_WIN_STATUS_FWP_CONDITION_NOT_FOUND = 0xC0220002, - MD_NTSTATUS_WIN_STATUS_FWP_FILTER_NOT_FOUND = 0xC0220003, - MD_NTSTATUS_WIN_STATUS_FWP_LAYER_NOT_FOUND = 0xC0220004, - MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_NOT_FOUND = 0xC0220005, - MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND = 0xC0220006, - MD_NTSTATUS_WIN_STATUS_FWP_SUBLAYER_NOT_FOUND = 0xC0220007, - MD_NTSTATUS_WIN_STATUS_FWP_NOT_FOUND = 0xC0220008, - MD_NTSTATUS_WIN_STATUS_FWP_ALREADY_EXISTS = 0xC0220009, - MD_NTSTATUS_WIN_STATUS_FWP_IN_USE = 0xC022000A, - MD_NTSTATUS_WIN_STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS = 0xC022000B, - MD_NTSTATUS_WIN_STATUS_FWP_WRONG_SESSION = 0xC022000C, - MD_NTSTATUS_WIN_STATUS_FWP_NO_TXN_IN_PROGRESS = 0xC022000D, - MD_NTSTATUS_WIN_STATUS_FWP_TXN_IN_PROGRESS = 0xC022000E, - MD_NTSTATUS_WIN_STATUS_FWP_TXN_ABORTED = 0xC022000F, - MD_NTSTATUS_WIN_STATUS_FWP_SESSION_ABORTED = 0xC0220010, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_TXN = 0xC0220011, - MD_NTSTATUS_WIN_STATUS_FWP_TIMEOUT = 0xC0220012, - MD_NTSTATUS_WIN_STATUS_FWP_NET_EVENTS_DISABLED = 0xC0220013, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_LAYER = 0xC0220014, - MD_NTSTATUS_WIN_STATUS_FWP_KM_CLIENTS_ONLY = 0xC0220015, - MD_NTSTATUS_WIN_STATUS_FWP_LIFETIME_MISMATCH = 0xC0220016, - MD_NTSTATUS_WIN_STATUS_FWP_BUILTIN_OBJECT = 0xC0220017, - MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_CALLOUTS = 0xC0220018, - MD_NTSTATUS_WIN_STATUS_FWP_NOTIFICATION_DROPPED = 0xC0220019, - MD_NTSTATUS_WIN_STATUS_FWP_TRAFFIC_MISMATCH = 0xC022001A, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_SA_STATE = 0xC022001B, - MD_NTSTATUS_WIN_STATUS_FWP_NULL_POINTER = 0xC022001C, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ENUMERATOR = 0xC022001D, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_FLAGS = 0xC022001E, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_NET_MASK = 0xC022001F, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_RANGE = 0xC0220020, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_INTERVAL = 0xC0220021, - MD_NTSTATUS_WIN_STATUS_FWP_ZERO_LENGTH_ARRAY = 0xC0220022, - MD_NTSTATUS_WIN_STATUS_FWP_NULL_DISPLAY_NAME = 0xC0220023, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ACTION_TYPE = 0xC0220024, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_WEIGHT = 0xC0220025, - MD_NTSTATUS_WIN_STATUS_FWP_MATCH_TYPE_MISMATCH = 0xC0220026, - MD_NTSTATUS_WIN_STATUS_FWP_TYPE_MISMATCH = 0xC0220027, - MD_NTSTATUS_WIN_STATUS_FWP_OUT_OF_BOUNDS = 0xC0220028, - MD_NTSTATUS_WIN_STATUS_FWP_RESERVED = 0xC0220029, - MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_CONDITION = 0xC022002A, - MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_KEYMOD = 0xC022002B, - MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER = 0xC022002C, - MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER = 0xC022002D, - MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER = 0xC022002E, - MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = 0xC022002F, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_AUTH_METHOD = 0xC0220030, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_DH_GROUP = 0xC0220031, - MD_NTSTATUS_WIN_STATUS_FWP_EM_NOT_SUPPORTED = 0xC0220032, - MD_NTSTATUS_WIN_STATUS_FWP_NEVER_MATCH = 0xC0220033, - MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_MISMATCH = 0xC0220034, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_PARAMETER = 0xC0220035, - MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_SUBLAYERS = 0xC0220036, - MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOTIFICATION_FAILED = 0xC0220037, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_AUTH_TRANSFORM = 0xC0220038, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_CIPHER_TRANSFORM = 0xC0220039, - MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM = 0xC022003A, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TRANSFORM_COMBINATION = 0xC022003B, - MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_AUTH_METHOD = 0xC022003C, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TUNNEL_ENDPOINT = 0xC022003D, - MD_NTSTATUS_WIN_STATUS_FWP_L2_DRIVER_NOT_READY = 0xC022003E, - MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED = 0xC022003F, - MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL = 0xC0220040, - MD_NTSTATUS_WIN_STATUS_FWP_CONNECTIONS_DISABLED = 0xC0220041, - MD_NTSTATUS_WIN_STATUS_FWP_INVALID_DNS_NAME = 0xC0220042, - MD_NTSTATUS_WIN_STATUS_FWP_STILL_ON = 0xC0220043, - MD_NTSTATUS_WIN_STATUS_FWP_IKEEXT_NOT_RUNNING = 0xC0220044, - MD_NTSTATUS_WIN_STATUS_FWP_TCPIP_NOT_READY = 0xC0220100, - MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_CLOSING = 0xC0220101, - MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_STALE = 0xC0220102, - MD_NTSTATUS_WIN_STATUS_FWP_CANNOT_PEND = 0xC0220103, - MD_NTSTATUS_WIN_STATUS_FWP_DROP_NOICMP = 0xC0220104, - MD_NTSTATUS_WIN_STATUS_NDIS_CLOSING = 0xC0230002, - MD_NTSTATUS_WIN_STATUS_NDIS_BAD_VERSION = 0xC0230004, - MD_NTSTATUS_WIN_STATUS_NDIS_BAD_CHARACTERISTICS = 0xC0230005, - MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_FOUND = 0xC0230006, - MD_NTSTATUS_WIN_STATUS_NDIS_OPEN_FAILED = 0xC0230007, - MD_NTSTATUS_WIN_STATUS_NDIS_DEVICE_FAILED = 0xC0230008, - MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_FULL = 0xC0230009, - MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_EXISTS = 0xC023000A, - MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_NOT_FOUND = 0xC023000B, - MD_NTSTATUS_WIN_STATUS_NDIS_REQUEST_ABORTED = 0xC023000C, - MD_NTSTATUS_WIN_STATUS_NDIS_RESET_IN_PROGRESS = 0xC023000D, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PACKET = 0xC023000F, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DEVICE_REQUEST = 0xC0230010, - MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_READY = 0xC0230011, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_LENGTH = 0xC0230014, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DATA = 0xC0230015, - MD_NTSTATUS_WIN_STATUS_NDIS_BUFFER_TOO_SHORT = 0xC0230016, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_OID = 0xC0230017, - MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_REMOVED = 0xC0230018, - MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_MEDIA = 0xC0230019, - MD_NTSTATUS_WIN_STATUS_NDIS_GROUP_ADDRESS_IN_USE = 0xC023001A, - MD_NTSTATUS_WIN_STATUS_NDIS_FILE_NOT_FOUND = 0xC023001B, - MD_NTSTATUS_WIN_STATUS_NDIS_ERROR_READING_FILE = 0xC023001C, - MD_NTSTATUS_WIN_STATUS_NDIS_ALREADY_MAPPED = 0xC023001D, - MD_NTSTATUS_WIN_STATUS_NDIS_RESOURCE_CONFLICT = 0xC023001E, - MD_NTSTATUS_WIN_STATUS_NDIS_MEDIA_DISCONNECTED = 0xC023001F, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_ADDRESS = 0xC0230022, - MD_NTSTATUS_WIN_STATUS_NDIS_PAUSED = 0xC023002A, - MD_NTSTATUS_WIN_STATUS_NDIS_INTERFACE_NOT_FOUND = 0xC023002B, - MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_REVISION = 0xC023002C, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT = 0xC023002D, - MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT_STATE = 0xC023002E, - MD_NTSTATUS_WIN_STATUS_NDIS_LOW_POWER_STATE = 0xC023002F, - MD_NTSTATUS_WIN_STATUS_NDIS_REINIT_REQUIRED = 0xC0230030, - MD_NTSTATUS_WIN_STATUS_NDIS_NOT_SUPPORTED = 0xC02300BB, - MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_POLICY = 0xC023100F, - MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED = 0xC0231012, - MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_PATH_REJECTED = 0xC0231013, - MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED = 0xC0232000, - MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_MEDIA_IN_USE = 0xC0232001, - MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_POWER_STATE_INVALID = 0xC0232002, - MD_NTSTATUS_WIN_STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL = 0xC0232003, - MD_NTSTATUS_WIN_STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = 0xC0232004, - MD_NTSTATUS_WIN_STATUS_TPM_ERROR_MASK = 0xC0290000, - MD_NTSTATUS_WIN_STATUS_TPM_AUTHFAIL = 0xC0290001, - MD_NTSTATUS_WIN_STATUS_TPM_BADINDEX = 0xC0290002, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAMETER = 0xC0290003, - MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAILURE = 0xC0290004, - MD_NTSTATUS_WIN_STATUS_TPM_CLEAR_DISABLED = 0xC0290005, - MD_NTSTATUS_WIN_STATUS_TPM_DEACTIVATED = 0xC0290006, - MD_NTSTATUS_WIN_STATUS_TPM_DISABLED = 0xC0290007, - MD_NTSTATUS_WIN_STATUS_TPM_DISABLED_CMD = 0xC0290008, - MD_NTSTATUS_WIN_STATUS_TPM_FAIL = 0xC0290009, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_ORDINAL = 0xC029000A, - MD_NTSTATUS_WIN_STATUS_TPM_INSTALL_DISABLED = 0xC029000B, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYHANDLE = 0xC029000C, - MD_NTSTATUS_WIN_STATUS_TPM_KEYNOTFOUND = 0xC029000D, - MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_ENC = 0xC029000E, - MD_NTSTATUS_WIN_STATUS_TPM_MIGRATEFAIL = 0xC029000F, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_PCR_INFO = 0xC0290010, - MD_NTSTATUS_WIN_STATUS_TPM_NOSPACE = 0xC0290011, - MD_NTSTATUS_WIN_STATUS_TPM_NOSRK = 0xC0290012, - MD_NTSTATUS_WIN_STATUS_TPM_NOTSEALED_BLOB = 0xC0290013, - MD_NTSTATUS_WIN_STATUS_TPM_OWNER_SET = 0xC0290014, - MD_NTSTATUS_WIN_STATUS_TPM_RESOURCES = 0xC0290015, - MD_NTSTATUS_WIN_STATUS_TPM_SHORTRANDOM = 0xC0290016, - MD_NTSTATUS_WIN_STATUS_TPM_SIZE = 0xC0290017, - MD_NTSTATUS_WIN_STATUS_TPM_WRONGPCRVAL = 0xC0290018, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAM_SIZE = 0xC0290019, - MD_NTSTATUS_WIN_STATUS_TPM_SHA_THREAD = 0xC029001A, - MD_NTSTATUS_WIN_STATUS_TPM_SHA_ERROR = 0xC029001B, - MD_NTSTATUS_WIN_STATUS_TPM_FAILEDSELFTEST = 0xC029001C, - MD_NTSTATUS_WIN_STATUS_TPM_AUTH2FAIL = 0xC029001D, - MD_NTSTATUS_WIN_STATUS_TPM_BADTAG = 0xC029001E, - MD_NTSTATUS_WIN_STATUS_TPM_IOERROR = 0xC029001F, - MD_NTSTATUS_WIN_STATUS_TPM_ENCRYPT_ERROR = 0xC0290020, - MD_NTSTATUS_WIN_STATUS_TPM_DECRYPT_ERROR = 0xC0290021, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_AUTHHANDLE = 0xC0290022, - MD_NTSTATUS_WIN_STATUS_TPM_NO_ENDORSEMENT = 0xC0290023, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYUSAGE = 0xC0290024, - MD_NTSTATUS_WIN_STATUS_TPM_WRONG_ENTITYTYPE = 0xC0290025, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_POSTINIT = 0xC0290026, - MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_SIG = 0xC0290027, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_KEY_PROPERTY = 0xC0290028, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_MIGRATION = 0xC0290029, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_SCHEME = 0xC029002A, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_DATASIZE = 0xC029002B, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_MODE = 0xC029002C, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_PRESENCE = 0xC029002D, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_VERSION = 0xC029002E, - MD_NTSTATUS_WIN_STATUS_TPM_NO_WRAP_TRANSPORT = 0xC029002F, - MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_UNSUCCESSFUL = 0xC0290030, - MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_SUCCESSFUL = 0xC0290031, - MD_NTSTATUS_WIN_STATUS_TPM_NOTRESETABLE = 0xC0290032, - MD_NTSTATUS_WIN_STATUS_TPM_NOTLOCAL = 0xC0290033, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_TYPE = 0xC0290034, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_RESOURCE = 0xC0290035, - MD_NTSTATUS_WIN_STATUS_TPM_NOTFIPS = 0xC0290036, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_FAMILY = 0xC0290037, - MD_NTSTATUS_WIN_STATUS_TPM_NO_NV_PERMISSION = 0xC0290038, - MD_NTSTATUS_WIN_STATUS_TPM_REQUIRES_SIGN = 0xC0290039, - MD_NTSTATUS_WIN_STATUS_TPM_KEY_NOTSUPPORTED = 0xC029003A, - MD_NTSTATUS_WIN_STATUS_TPM_AUTH_CONFLICT = 0xC029003B, - MD_NTSTATUS_WIN_STATUS_TPM_AREA_LOCKED = 0xC029003C, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_LOCALITY = 0xC029003D, - MD_NTSTATUS_WIN_STATUS_TPM_READ_ONLY = 0xC029003E, - MD_NTSTATUS_WIN_STATUS_TPM_PER_NOWRITE = 0xC029003F, - MD_NTSTATUS_WIN_STATUS_TPM_FAMILYCOUNT = 0xC0290040, - MD_NTSTATUS_WIN_STATUS_TPM_WRITE_LOCKED = 0xC0290041, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_ATTRIBUTES = 0xC0290042, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_STRUCTURE = 0xC0290043, - MD_NTSTATUS_WIN_STATUS_TPM_KEY_OWNER_CONTROL = 0xC0290044, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_COUNTER = 0xC0290045, - MD_NTSTATUS_WIN_STATUS_TPM_NOT_FULLWRITE = 0xC0290046, - MD_NTSTATUS_WIN_STATUS_TPM_CONTEXT_GAP = 0xC0290047, - MD_NTSTATUS_WIN_STATUS_TPM_MAXNVWRITES = 0xC0290048, - MD_NTSTATUS_WIN_STATUS_TPM_NOOPERATOR = 0xC0290049, - MD_NTSTATUS_WIN_STATUS_TPM_RESOURCEMISSING = 0xC029004A, - MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_LOCK = 0xC029004B, - MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_FAMILY = 0xC029004C, - MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_ADMIN = 0xC029004D, - MD_NTSTATUS_WIN_STATUS_TPM_TRANSPORT_NOTEXCLUSIVE = 0xC029004E, - MD_NTSTATUS_WIN_STATUS_TPM_OWNER_CONTROL = 0xC029004F, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_RESOURCES = 0xC0290050, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA0 = 0xC0290051, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA1 = 0xC0290052, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_SETTINGS = 0xC0290053, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_TPM_SETTINGS = 0xC0290054, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_STAGE = 0xC0290055, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_VALIDITY = 0xC0290056, - MD_NTSTATUS_WIN_STATUS_TPM_DAA_WRONG_W = 0xC0290057, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_HANDLE = 0xC0290058, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_DELEGATE = 0xC0290059, - MD_NTSTATUS_WIN_STATUS_TPM_BADCONTEXT = 0xC029005A, - MD_NTSTATUS_WIN_STATUS_TPM_TOOMANYCONTEXTS = 0xC029005B, - MD_NTSTATUS_WIN_STATUS_TPM_MA_TICKET_SIGNATURE = 0xC029005C, - MD_NTSTATUS_WIN_STATUS_TPM_MA_DESTINATION = 0xC029005D, - MD_NTSTATUS_WIN_STATUS_TPM_MA_SOURCE = 0xC029005E, - MD_NTSTATUS_WIN_STATUS_TPM_MA_AUTHORITY = 0xC029005F, - MD_NTSTATUS_WIN_STATUS_TPM_PERMANENTEK = 0xC0290061, - MD_NTSTATUS_WIN_STATUS_TPM_BAD_SIGNATURE = 0xC0290062, - MD_NTSTATUS_WIN_STATUS_TPM_NOCONTEXTSPACE = 0xC0290063, - MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_BLOCKED = 0xC0290400, - MD_NTSTATUS_WIN_STATUS_TPM_INVALID_HANDLE = 0xC0290401, - MD_NTSTATUS_WIN_STATUS_TPM_DUPLICATE_VHANDLE = 0xC0290402, - MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_BLOCKED = 0xC0290403, - MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED = 0xC0290404, - MD_NTSTATUS_WIN_STATUS_TPM_RETRY = 0xC0290800, - MD_NTSTATUS_WIN_STATUS_TPM_NEEDS_SELFTEST = 0xC0290801, - MD_NTSTATUS_WIN_STATUS_TPM_DOING_SELFTEST = 0xC0290802, - MD_NTSTATUS_WIN_STATUS_TPM_DEFEND_LOCK_RUNNING = 0xC0290803, - MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_CANCELED = 0xC0291001, - MD_NTSTATUS_WIN_STATUS_TPM_TOO_MANY_CONTEXTS = 0xC0291002, - MD_NTSTATUS_WIN_STATUS_TPM_NOT_FOUND = 0xC0291003, - MD_NTSTATUS_WIN_STATUS_TPM_ACCESS_DENIED = 0xC0291004, - MD_NTSTATUS_WIN_STATUS_TPM_INSUFFICIENT_BUFFER = 0xC0291005, - MD_NTSTATUS_WIN_STATUS_TPM_PPI_FUNCTION_UNSUPPORTED = 0xC0291006, - MD_NTSTATUS_WIN_STATUS_PCP_ERROR_MASK = 0xC0292000, - MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_READY = 0xC0292001, - MD_NTSTATUS_WIN_STATUS_PCP_INVALID_HANDLE = 0xC0292002, - MD_NTSTATUS_WIN_STATUS_PCP_INVALID_PARAMETER = 0xC0292003, - MD_NTSTATUS_WIN_STATUS_PCP_FLAG_NOT_SUPPORTED = 0xC0292004, - MD_NTSTATUS_WIN_STATUS_PCP_NOT_SUPPORTED = 0xC0292005, - MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_TOO_SMALL = 0xC0292006, - MD_NTSTATUS_WIN_STATUS_PCP_INTERNAL_ERROR = 0xC0292007, - MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_FAILED = 0xC0292008, - MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_IGNORED = 0xC0292009, - MD_NTSTATUS_WIN_STATUS_PCP_POLICY_NOT_FOUND = 0xC029200A, - MD_NTSTATUS_WIN_STATUS_PCP_PROFILE_NOT_FOUND = 0xC029200B, - MD_NTSTATUS_WIN_STATUS_PCP_VALIDATION_FAILED = 0xC029200C, - MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_FOUND = 0xC029200D, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_CODE = 0xC0350002, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_INPUT = 0xC0350003, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_ALIGNMENT = 0xC0350004, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARAMETER = 0xC0350005, - MD_NTSTATUS_WIN_STATUS_HV_ACCESS_DENIED = 0xC0350006, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_STATE = 0xC0350007, - MD_NTSTATUS_WIN_STATUS_HV_OPERATION_DENIED = 0xC0350008, - MD_NTSTATUS_WIN_STATUS_HV_UNKNOWN_PROPERTY = 0xC0350009, - MD_NTSTATUS_WIN_STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE = 0xC035000A, - MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_MEMORY = 0xC035000B, - MD_NTSTATUS_WIN_STATUS_HV_PARTITION_TOO_DEEP = 0xC035000C, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_ID = 0xC035000D, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_INDEX = 0xC035000E, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_PORT_ID = 0xC0350011, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_CONNECTION_ID = 0xC0350012, - MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFERS = 0xC0350013, - MD_NTSTATUS_WIN_STATUS_HV_NOT_ACKNOWLEDGED = 0xC0350014, - MD_NTSTATUS_WIN_STATUS_HV_ACKNOWLEDGED = 0xC0350016, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_SAVE_RESTORE_STATE = 0xC0350017, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_SYNIC_STATE = 0xC0350018, - MD_NTSTATUS_WIN_STATUS_HV_OBJECT_IN_USE = 0xC0350019, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO = 0xC035001A, - MD_NTSTATUS_WIN_STATUS_HV_NO_DATA = 0xC035001B, - MD_NTSTATUS_WIN_STATUS_HV_INACTIVE = 0xC035001C, - MD_NTSTATUS_WIN_STATUS_HV_NO_RESOURCES = 0xC035001D, - MD_NTSTATUS_WIN_STATUS_HV_FEATURE_UNAVAILABLE = 0xC035001E, - MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFER = 0xC0350033, - MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS = 0xC0350038, - MD_NTSTATUS_WIN_STATUS_HV_INVALID_LP_INDEX = 0xC0350041, - MD_NTSTATUS_WIN_STATUS_HV_NOT_PRESENT = 0xC0351000, - MD_NTSTATUS_WIN_STATUS_IPSEC_BAD_SPI = 0xC0360001, - MD_NTSTATUS_WIN_STATUS_IPSEC_SA_LIFETIME_EXPIRED = 0xC0360002, - MD_NTSTATUS_WIN_STATUS_IPSEC_WRONG_SA = 0xC0360003, - MD_NTSTATUS_WIN_STATUS_IPSEC_REPLAY_CHECK_FAILED = 0xC0360004, - MD_NTSTATUS_WIN_STATUS_IPSEC_INVALID_PACKET = 0xC0360005, - MD_NTSTATUS_WIN_STATUS_IPSEC_INTEGRITY_CHECK_FAILED = 0xC0360006, - MD_NTSTATUS_WIN_STATUS_IPSEC_CLEAR_TEXT_DROP = 0xC0360007, - MD_NTSTATUS_WIN_STATUS_IPSEC_AUTH_FIREWALL_DROP = 0xC0360008, - MD_NTSTATUS_WIN_STATUS_IPSEC_THROTTLE_DROP = 0xC0360009, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_BLOCK = 0xC0368000, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_RECEIVED_MULTICAST = 0xC0368001, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_INVALID_PACKET = 0xC0368002, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED = 0xC0368003, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_ENTRIES = 0xC0368004, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 0xC0368005, - MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 0xC0368006, - MD_NTSTATUS_WIN_STATUS_VID_DUPLICATE_HANDLER = 0xC0370001, - MD_NTSTATUS_WIN_STATUS_VID_TOO_MANY_HANDLERS = 0xC0370002, - MD_NTSTATUS_WIN_STATUS_VID_QUEUE_FULL = 0xC0370003, - MD_NTSTATUS_WIN_STATUS_VID_HANDLER_NOT_PRESENT = 0xC0370004, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_OBJECT_NAME = 0xC0370005, - MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_TOO_LONG = 0xC0370006, - MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG = 0xC0370007, - MD_NTSTATUS_WIN_STATUS_VID_PARTITION_ALREADY_EXISTS = 0xC0370008, - MD_NTSTATUS_WIN_STATUS_VID_PARTITION_DOES_NOT_EXIST = 0xC0370009, - MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_NOT_FOUND = 0xC037000A, - MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS = 0xC037000B, - MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT = 0xC037000C, - MD_NTSTATUS_WIN_STATUS_VID_MB_STILL_REFERENCED = 0xC037000D, - MD_NTSTATUS_WIN_STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED = 0xC037000E, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_SETTINGS = 0xC037000F, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_NODE_INDEX = 0xC0370010, - MD_NTSTATUS_WIN_STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED = 0xC0370011, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE = 0xC0370012, - MD_NTSTATUS_WIN_STATUS_VID_PAGE_RANGE_OVERFLOW = 0xC0370013, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE = 0xC0370014, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_GPA_RANGE_HANDLE = 0xC0370015, - MD_NTSTATUS_WIN_STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE = 0xC0370016, - MD_NTSTATUS_WIN_STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED = 0xC0370017, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_PPM_HANDLE = 0xC0370018, - MD_NTSTATUS_WIN_STATUS_VID_MBPS_ARE_LOCKED = 0xC0370019, - MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_CLOSED = 0xC037001A, - MD_NTSTATUS_WIN_STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED = 0xC037001B, - MD_NTSTATUS_WIN_STATUS_VID_STOP_PENDING = 0xC037001C, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_PROCESSOR_STATE = 0xC037001D, - MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT = 0xC037001E, - MD_NTSTATUS_WIN_STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED = 0xC037001F, - MD_NTSTATUS_WIN_STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET = 0xC0370020, - MD_NTSTATUS_WIN_STATUS_VID_MMIO_RANGE_DESTROYED = 0xC0370021, - MD_NTSTATUS_WIN_STATUS_VID_INVALID_CHILD_GPA_PAGE_SET = 0xC0370022, - MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED = 0xC0370023, - MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL = 0xC0370024, - MD_NTSTATUS_WIN_STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE = 0xC0370025, - MD_NTSTATUS_WIN_STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT = 0xC0370026, - MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_CORRUPT = 0xC0370027, - MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM = 0xC0370028, - MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_INCOMPATIBLE = 0xC0370029, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DATABASE_FULL = 0xC0380001, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED = 0xC0380002, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC = 0xC0380003, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED = 0xC0380004, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME = 0xC0380005, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DUPLICATE = 0xC0380006, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DYNAMIC = 0xC0380007, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_ID_INVALID = 0xC0380008, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_INVALID = 0xC0380009, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAST_VOTER = 0xC038000A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_INVALID = 0xC038000B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS = 0xC038000C, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED = 0xC038000D, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL = 0xC038000E, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS = 0xC038000F, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS = 0xC0380010, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_MISSING = 0xC0380011, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_EMPTY = 0xC0380012, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE = 0xC0380013, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_REVECTORING_FAILED = 0xC0380014, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID = 0xC0380015, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SET_NOT_CONTAINED = 0xC0380016, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS = 0xC0380017, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES = 0xC0380018, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED = 0xC0380019, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_ALREADY_USED = 0xC038001A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS = 0xC038001B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION = 0xC038001C, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED = 0xC038001D, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION = 0xC038001E, - MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH = 0xC038001F, - MD_NTSTATUS_WIN_STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED = 0xC0380020, - MD_NTSTATUS_WIN_STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID = 0xC0380021, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS = 0xC0380022, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_IN_SYNC = 0xC0380023, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE = 0xC0380024, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_INVALID = 0xC0380025, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_MISSING = 0xC0380026, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_NOT_DETACHED = 0xC0380027, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_REGENERATING = 0xC0380028, - MD_NTSTATUS_WIN_STATUS_VOLMGR_ALL_DISKS_FAILED = 0xC0380029, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_REGISTERED_USERS = 0xC038002A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_SUCH_USER = 0xC038002B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NOTIFICATION_RESET = 0xC038002C, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID = 0xC038002D, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID = 0xC038002E, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_DUPLICATE = 0xC038002F, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_ID_INVALID = 0xC0380030, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_INVALID = 0xC0380031, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_NAME_INVALID = 0xC0380032, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_OFFLINE = 0xC0380033, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_HAS_QUORUM = 0xC0380034, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_WITHOUT_QUORUM = 0xC0380035, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_STYLE_INVALID = 0xC0380036, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_UPDATE_FAILED = 0xC0380037, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_IN_SYNC = 0xC0380038, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_DUPLICATE = 0xC0380039, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_INVALID = 0xC038003A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_LAST_ACTIVE = 0xC038003B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_MISSING = 0xC038003C, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_REGENERATING = 0xC038003D, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_TYPE_INVALID = 0xC038003E, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_RAID5 = 0xC038003F, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE = 0xC0380040, - MD_NTSTATUS_WIN_STATUS_VOLMGR_STRUCTURE_SIZE_INVALID = 0xC0380041, - MD_NTSTATUS_WIN_STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS = 0xC0380042, - MD_NTSTATUS_WIN_STATUS_VOLMGR_TRANSACTION_IN_PROGRESS = 0xC0380043, - MD_NTSTATUS_WIN_STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE = 0xC0380044, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK = 0xC0380045, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_ID_INVALID = 0xC0380046, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_INVALID = 0xC0380047, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = 0xC0380048, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_MIRRORED = 0xC0380049, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_RETAINED = 0xC038004A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_OFFLINE = 0xC038004B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_RETAINED = 0xC038004C, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID = 0xC038004D, - MD_NTSTATUS_WIN_STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE = 0xC038004E, - MD_NTSTATUS_WIN_STATUS_VOLMGR_BAD_BOOT_DISK = 0xC038004F, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_OFFLINE = 0xC0380050, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_ONLINE = 0xC0380051, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NOT_PRIMARY_PACK = 0xC0380052, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED = 0xC0380053, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID = 0xC0380054, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID = 0xC0380055, - MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_MIRRORED = 0xC0380056, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED = 0xC0380057, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_VALID_LOG_COPIES = 0xC0380058, - MD_NTSTATUS_WIN_STATUS_VOLMGR_PRIMARY_PACK_PRESENT = 0xC0380059, - MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID = 0xC038005A, - MD_NTSTATUS_WIN_STATUS_VOLMGR_MIRROR_NOT_SUPPORTED = 0xC038005B, - MD_NTSTATUS_WIN_STATUS_VOLMGR_RAID5_NOT_SUPPORTED = 0xC038005C, - MD_NTSTATUS_WIN_STATUS_BCD_TOO_MANY_ELEMENTS = 0xC0390002, - MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_MISSING = 0xC03A0001, - MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH = 0xC03A0002, - MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CORRUPT = 0xC03A0003, - MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNKNOWN = 0xC03A0004, - MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNSUPPORTED_VERSION = 0xC03A0005, - MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH = 0xC03A0006, - MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION = 0xC03A0007, - MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CORRUPT = 0xC03A0008, - MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_FAILURE = 0xC03A0009, - MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT = 0xC03A000A, - MD_NTSTATUS_WIN_STATUS_VHD_INVALID_BLOCK_SIZE = 0xC03A000B, - MD_NTSTATUS_WIN_STATUS_VHD_BITMAP_MISMATCH = 0xC03A000C, - MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_NOT_FOUND = 0xC03A000D, - MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_ID_MISMATCH = 0xC03A000E, - MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH = 0xC03A000F, - MD_NTSTATUS_WIN_STATUS_VHD_METADATA_READ_FAILURE = 0xC03A0010, - MD_NTSTATUS_WIN_STATUS_VHD_METADATA_WRITE_FAILURE = 0xC03A0011, - MD_NTSTATUS_WIN_STATUS_VHD_INVALID_SIZE = 0xC03A0012, - MD_NTSTATUS_WIN_STATUS_VHD_INVALID_FILE_SIZE = 0xC03A0013, - MD_NTSTATUS_WIN_STATUS_VIRTDISK_PROVIDER_NOT_FOUND = 0xC03A0014, - MD_NTSTATUS_WIN_STATUS_VIRTDISK_NOT_VIRTUAL_DISK = 0xC03A0015, - MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_ACCESS_DENIED = 0xC03A0016, - MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH = 0xC03A0017, - MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = 0xC03A0018, - MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = 0xC03A0019, - MD_NTSTATUS_WIN_STATUS_VIRTUAL_DISK_LIMITATION = 0xC03A001A, - MD_NTSTATUS_WIN_STATUS_VHD_INVALID_TYPE = 0xC03A001B, - MD_NTSTATUS_WIN_STATUS_VHD_INVALID_STATE = 0xC03A001C, - MD_NTSTATUS_WIN_STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE = 0xC03A001D, - MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ALREADY_OWNED = 0xC03A001E, - MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE = 0xC03A001F, - MD_NTSTATUS_WIN_STATUS_CTLOG_TRACKING_NOT_INITIALIZED = 0xC03A0020, - MD_NTSTATUS_WIN_STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE = 0xC03A0021, - MD_NTSTATUS_WIN_STATUS_CTLOG_VHD_CHANGED_OFFLINE = 0xC03A0022, - MD_NTSTATUS_WIN_STATUS_CTLOG_INVALID_TRACKING_STATE = 0xC03A0023, - MD_NTSTATUS_WIN_STATUS_CTLOG_INCONSISTENT_TRACKING_FILE = 0xC03A0024, - MD_NTSTATUS_WIN_STATUS_VHD_METADATA_FULL = 0xC03A0028, - MD_NTSTATUS_WIN_STATUS_RKF_KEY_NOT_FOUND = 0xC0400001, - MD_NTSTATUS_WIN_STATUS_RKF_DUPLICATE_KEY = 0xC0400002, - MD_NTSTATUS_WIN_STATUS_RKF_BLOB_FULL = 0xC0400003, - MD_NTSTATUS_WIN_STATUS_RKF_STORE_FULL = 0xC0400004, - MD_NTSTATUS_WIN_STATUS_RKF_FILE_BLOCKED = 0xC0400005, - MD_NTSTATUS_WIN_STATUS_RKF_ACTIVE_KEY = 0xC0400006, - MD_NTSTATUS_WIN_STATUS_RDBSS_RESTART_OPERATION = 0xC0410001, - MD_NTSTATUS_WIN_STATUS_RDBSS_CONTINUE_OPERATION = 0xC0410002, - MD_NTSTATUS_WIN_STATUS_RDBSS_POST_OPERATION = 0xC0410003, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_HANDLE = 0xC0420001, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_READ_NOT_PERMITTED = 0xC0420002, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_WRITE_NOT_PERMITTED = 0xC0420003, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_PDU = 0xC0420004, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION = 0xC0420005, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED = 0xC0420006, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_OFFSET = 0xC0420007, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION = 0xC0420008, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_PREPARE_QUEUE_FULL = 0xC0420009, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND = 0xC042000A, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG = 0xC042000B, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0xC042000C, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0xC042000D, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNLIKELY = 0xC042000E, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION = 0xC042000F, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE = 0xC0420010, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_RESOURCES = 0xC0420011, - MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNKNOWN_ERROR = 0xC0421000, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_ROLLBACK_DETECTED = 0xC0430001, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_VIOLATION = 0xC0430002, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_INVALID_POLICY = 0xC0430003, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = 0xC0430004, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_SIGNED = 0xC0430005, - MD_NTSTATUS_WIN_STATUS_SECUREBOOT_FILE_REPLACED = 0xC0430007, - MD_NTSTATUS_WIN_STATUS_AUDIO_ENGINE_NODE_NOT_FOUND = 0xC0440001, - MD_NTSTATUS_WIN_STATUS_HDAUDIO_EMPTY_CONNECTION_LIST = 0xC0440002, - MD_NTSTATUS_WIN_STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED = 0xC0440003, - MD_NTSTATUS_WIN_STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED = 0xC0440004, - MD_NTSTATUS_WIN_STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY = 0xC0440005, - MD_NTSTATUS_WIN_STATUS_VOLSNAP_BOOTFILE_NOT_VALID = 0xC0500003, - MD_NTSTATUS_WIN_STATUS_IO_PREEMPTED = 0xC0510001, - MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_STORED = 0xC05C0000, - MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_NOT_AVAILABLE = 0xC05CFF00, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE = 0xC05CFF01, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED = 0xC05CFF02, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED = 0xC05CFF03, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED = 0xC05CFF04, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED = 0xC05CFF05, - MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED = 0xC05CFF06, - MD_NTSTATUS_WIN_STATUS_SVHDX_RESERVATION_CONFLICT = 0xC05CFF07, - MD_NTSTATUS_WIN_STATUS_SVHDX_WRONG_FILE_TYPE = 0xC05CFF08, - MD_NTSTATUS_WIN_STATUS_SVHDX_VERSION_MISMATCH = 0xC05CFF09, - MD_NTSTATUS_WIN_STATUS_VHD_SHARED = 0xC05CFF0A, - MD_NTSTATUS_WIN_STATUS_SPACES_RESILIENCY_TYPE_INVALID = 0xC0E70003, - MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID = 0xC0E70004, - MD_NTSTATUS_WIN_STATUS_SPACES_INTERLEAVE_LENGTH_INVALID = 0xC0E70009, - MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID = 0xC0E7000A, - MD_NTSTATUS_WIN_STATUS_SPACES_NOT_ENOUGH_DRIVES = 0xC0E7000B -} MDNTStatusCodeWin; - -// These constants are defined in the MSDN documentation of -// the EXCEPTION_RECORD structure. -typedef enum { - MD_ACCESS_VIOLATION_WIN_READ = 0, - MD_ACCESS_VIOLATION_WIN_WRITE = 1, - MD_ACCESS_VIOLATION_WIN_EXEC = 8 -} MDAccessViolationTypeWin; - -// These constants are defined in the MSDN documentation of -// the EXCEPTION_RECORD structure. -typedef enum { - MD_IN_PAGE_ERROR_WIN_READ = 0, - MD_IN_PAGE_ERROR_WIN_WRITE = 1, - MD_IN_PAGE_ERROR_WIN_EXEC = 8 -} MDInPageErrorTypeWin; - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_format.h b/sources/google-breakpad/src/google_breakpad/common/minidump_format.h deleted file mode 100644 index da20f459..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_format.h +++ /dev/null @@ -1,984 +0,0 @@ -/* Copyright (c) 2006, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. */ - -/* minidump_format.h: A cross-platform reimplementation of minidump-related - * portions of DbgHelp.h from the Windows Platform SDK. - * - * (This is C99 source, please don't corrupt it with C++.) - * - * Structures that are defined by Microsoft to contain a zero-length array - * are instead defined here to contain an array with one element, as - * zero-length arrays are forbidden by standard C and C++. In these cases, - * *_minsize constants are provided to be used in place of sizeof. For a - * cleaner interface to these sizes when using C++, see minidump_size.h. - * - * These structures are also sufficient to populate minidump files. - * - * These definitions may be extended to support handling minidump files - * for other CPUs and other operating systems. - * - * Because precise data type sizes are crucial for this implementation to - * function properly and portably in terms of interoperability with minidumps - * produced by DbgHelp on Windows, a set of primitive types with known sizes - * are used as the basis of each structure defined by this file. DbgHelp - * on Windows is assumed to be the reference implementation; this file - * seeks to provide a cross-platform compatible implementation. To avoid - * collisions with the types and values defined and used by DbgHelp in the - * event that this implementation is used on Windows, each type and value - * defined here is given a new name, beginning with "MD". Names of the - * equivalent types and values in the Windows Platform SDK are given in - * comments. - * - * Author: Mark Mentovai */ - - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ - -#include - -#include "google_breakpad/common/breakpad_types.h" - - -#if defined(_MSC_VER) -/* Disable "zero-sized array in struct/union" warnings when compiling in - * MSVC. DbgHelp.h does this too. */ -#pragma warning(push) -#pragma warning(disable:4200) -#endif /* _MSC_VER */ - - -/* - * guiddef.h - */ - -typedef struct { - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; -} MDGUID; /* GUID */ - - -/* - * WinNT.h - */ - -/* Non-x86 CPU identifiers found in the high 24 bits of - * (MDRawContext*).context_flags. These aren't used by Breakpad, but are - * defined here for reference, to avoid assigning values that conflict - * (although some values already conflict). */ -#define MD_CONTEXT_IA64 0x00080000 /* CONTEXT_IA64 */ -/* Additional values from winnt.h in the Windows CE 5.0 SDK: */ -#define MD_CONTEXT_SHX 0x000000c0 /* CONTEXT_SH4 (Super-H, includes SH3) */ -#define MD_CONTEXT_ALPHA 0x00020000 /* CONTEXT_ALPHA */ - -/* As of Windows 7 SP1, the number of flag bits has increased to - * include 0x40 (CONTEXT_XSTATE): - * http://msdn.microsoft.com/en-us/library/hh134238%28v=vs.85%29.aspx */ -#define MD_CONTEXT_CPU_MASK 0xffffff00 - - -/* This is a base type for MDRawContextX86 and MDRawContextPPC. This - * structure should never be allocated directly. The actual structure type - * can be determined by examining the context_flags field. */ -typedef struct { - uint32_t context_flags; -} MDRawContextBase; - -#include "minidump_cpu_amd64.h" -#include "minidump_cpu_arm.h" -#include "minidump_cpu_arm64.h" -#include "minidump_cpu_mips.h" -#include "minidump_cpu_ppc.h" -#include "minidump_cpu_ppc64.h" -#include "minidump_cpu_sparc.h" -#include "minidump_cpu_x86.h" - -/* - * WinVer.h - */ - - -typedef struct { - uint32_t signature; - uint32_t struct_version; - uint32_t file_version_hi; - uint32_t file_version_lo; - uint32_t product_version_hi; - uint32_t product_version_lo; - uint32_t file_flags_mask; /* Identifies valid bits in fileFlags */ - uint32_t file_flags; - uint32_t file_os; - uint32_t file_type; - uint32_t file_subtype; - uint32_t file_date_hi; - uint32_t file_date_lo; -} MDVSFixedFileInfo; /* VS_FIXEDFILEINFO */ - -/* For (MDVSFixedFileInfo).signature */ -#define MD_VSFIXEDFILEINFO_SIGNATURE 0xfeef04bd - /* VS_FFI_SIGNATURE */ - -/* For (MDVSFixedFileInfo).version */ -#define MD_VSFIXEDFILEINFO_VERSION 0x00010000 - /* VS_FFI_STRUCVERSION */ - -/* For (MDVSFixedFileInfo).file_flags_mask and - * (MDVSFixedFileInfo).file_flags */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG 0x00000001 - /* VS_FF_DEBUG */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRERELEASE 0x00000002 - /* VS_FF_PRERELEASE */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PATCHED 0x00000004 - /* VS_FF_PATCHED */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRIVATEBUILD 0x00000008 - /* VS_FF_PRIVATEBUILD */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_INFOINFERRED 0x00000010 - /* VS_FF_INFOINFERRED */ -#define MD_VSFIXEDFILEINFO_FILE_FLAGS_SPECIALBUILD 0x00000020 - /* VS_FF_SPECIALBUILD */ - -/* For (MDVSFixedFileInfo).file_os: high 16 bits */ -#define MD_VSFIXEDFILEINFO_FILE_OS_UNKNOWN 0 /* VOS_UNKNOWN */ -#define MD_VSFIXEDFILEINFO_FILE_OS_DOS (1 << 16) /* VOS_DOS */ -#define MD_VSFIXEDFILEINFO_FILE_OS_OS216 (2 << 16) /* VOS_OS216 */ -#define MD_VSFIXEDFILEINFO_FILE_OS_OS232 (3 << 16) /* VOS_OS232 */ -#define MD_VSFIXEDFILEINFO_FILE_OS_NT (4 << 16) /* VOS_NT */ -#define MD_VSFIXEDFILEINFO_FILE_OS_WINCE (5 << 16) /* VOS_WINCE */ -/* Low 16 bits */ -#define MD_VSFIXEDFILEINFO_FILE_OS__BASE 0 /* VOS__BASE */ -#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS16 1 /* VOS__WINDOWS16 */ -#define MD_VSFIXEDFILEINFO_FILE_OS__PM16 2 /* VOS__PM16 */ -#define MD_VSFIXEDFILEINFO_FILE_OS__PM32 3 /* VOS__PM32 */ -#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS32 4 /* VOS__WINDOWS32 */ - -/* For (MDVSFixedFileInfo).file_type */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_UNKNOWN 0 /* VFT_UNKNOWN */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_APP 1 /* VFT_APP */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_DLL 2 /* VFT_DLL */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_DRV 3 /* VFT_DLL */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_FONT 4 /* VFT_FONT */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_VXD 5 /* VFT_VXD */ -#define MD_VSFIXEDFILEINFO_FILE_TYPE_STATIC_LIB 7 /* VFT_STATIC_LIB */ - -/* For (MDVSFixedFileInfo).file_subtype */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_UNKNOWN 0 - /* VFT2_UNKNOWN */ -/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_DRV */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_PRINTER 1 - /* VFT2_DRV_PRINTER */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_KEYBOARD 2 - /* VFT2_DRV_KEYBOARD */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_LANGUAGE 3 - /* VFT2_DRV_LANGUAGE */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_DISPLAY 4 - /* VFT2_DRV_DISPLAY */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_MOUSE 5 - /* VFT2_DRV_MOUSE */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_NETWORK 6 - /* VFT2_DRV_NETWORK */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SYSTEM 7 - /* VFT2_DRV_SYSTEM */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INSTALLABLE 8 - /* VFT2_DRV_INSTALLABLE */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SOUND 9 - /* VFT2_DRV_SOUND */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_COMM 10 - /* VFT2_DRV_COMM */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INPUTMETHOD 11 - /* VFT2_DRV_INPUTMETHOD */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_VERSIONED_PRINTER 12 - /* VFT2_DRV_VERSIONED_PRINTER */ -/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_FONT */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_RASTER 1 - /* VFT2_FONT_RASTER */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_VECTOR 2 - /* VFT2_FONT_VECTOR */ -#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_TRUETYPE 3 - /* VFT2_FONT_TRUETYPE */ - - -/* - * DbgHelp.h - */ - - -/* An MDRVA is an offset into the minidump file. The beginning of the - * MDRawHeader is at offset 0. */ -typedef uint32_t MDRVA; /* RVA */ - -typedef struct { - uint32_t data_size; - MDRVA rva; -} MDLocationDescriptor; /* MINIDUMP_LOCATION_DESCRIPTOR */ - - -typedef struct { - /* The base address of the memory range on the host that produced the - * minidump. */ - uint64_t start_of_memory_range; - - MDLocationDescriptor memory; -} MDMemoryDescriptor; /* MINIDUMP_MEMORY_DESCRIPTOR */ - - -typedef struct { - uint32_t signature; - uint32_t version; - uint32_t stream_count; - MDRVA stream_directory_rva; /* A |stream_count|-sized array of - * MDRawDirectory structures. */ - uint32_t checksum; /* Can be 0. In fact, that's all that's - * been found in minidump files. */ - uint32_t time_date_stamp; /* time_t */ - uint64_t flags; -} MDRawHeader; /* MINIDUMP_HEADER */ - -/* For (MDRawHeader).signature and (MDRawHeader).version. Note that only the - * low 16 bits of (MDRawHeader).version are MD_HEADER_VERSION. Per the - * documentation, the high 16 bits are implementation-specific. */ -#define MD_HEADER_SIGNATURE 0x504d444d /* 'PMDM' */ - /* MINIDUMP_SIGNATURE */ -#define MD_HEADER_VERSION 0x0000a793 /* 42899 */ - /* MINIDUMP_VERSION */ - -/* For (MDRawHeader).flags: */ -typedef enum { - /* MD_NORMAL is the standard type of minidump. It includes full - * streams for the thread list, module list, exception, system info, - * and miscellaneous info. A memory list stream is also present, - * pointing to the same stack memory contained in the thread list, - * as well as a 256-byte region around the instruction address that - * was executing when the exception occurred. Stack memory is from - * 4 bytes below a thread's stack pointer up to the top of the - * memory region encompassing the stack. */ - MD_NORMAL = 0x00000000, - MD_WITH_DATA_SEGS = 0x00000001, - MD_WITH_FULL_MEMORY = 0x00000002, - MD_WITH_HANDLE_DATA = 0x00000004, - MD_FILTER_MEMORY = 0x00000008, - MD_SCAN_MEMORY = 0x00000010, - MD_WITH_UNLOADED_MODULES = 0x00000020, - MD_WITH_INDIRECTLY_REFERENCED_MEMORY = 0x00000040, - MD_FILTER_MODULE_PATHS = 0x00000080, - MD_WITH_PROCESS_THREAD_DATA = 0x00000100, - MD_WITH_PRIVATE_READ_WRITE_MEMORY = 0x00000200, - MD_WITHOUT_OPTIONAL_DATA = 0x00000400, - MD_WITH_FULL_MEMORY_INFO = 0x00000800, - MD_WITH_THREAD_INFO = 0x00001000, - MD_WITH_CODE_SEGS = 0x00002000, - MD_WITHOUT_AUXILLIARY_SEGS = 0x00004000, - MD_WITH_FULL_AUXILLIARY_STATE = 0x00008000, - MD_WITH_PRIVATE_WRITE_COPY_MEMORY = 0x00010000, - MD_IGNORE_INACCESSIBLE_MEMORY = 0x00020000, - MD_WITH_TOKEN_INFORMATION = 0x00040000 -} MDType; /* MINIDUMP_TYPE */ - - -typedef struct { - uint32_t stream_type; - MDLocationDescriptor location; -} MDRawDirectory; /* MINIDUMP_DIRECTORY */ - -/* For (MDRawDirectory).stream_type */ -typedef enum { - MD_UNUSED_STREAM = 0, - MD_RESERVED_STREAM_0 = 1, - MD_RESERVED_STREAM_1 = 2, - MD_THREAD_LIST_STREAM = 3, /* MDRawThreadList */ - MD_MODULE_LIST_STREAM = 4, /* MDRawModuleList */ - MD_MEMORY_LIST_STREAM = 5, /* MDRawMemoryList */ - MD_EXCEPTION_STREAM = 6, /* MDRawExceptionStream */ - MD_SYSTEM_INFO_STREAM = 7, /* MDRawSystemInfo */ - MD_THREAD_EX_LIST_STREAM = 8, - MD_MEMORY_64_LIST_STREAM = 9, - MD_COMMENT_STREAM_A = 10, - MD_COMMENT_STREAM_W = 11, - MD_HANDLE_DATA_STREAM = 12, - MD_FUNCTION_TABLE_STREAM = 13, - MD_UNLOADED_MODULE_LIST_STREAM = 14, - MD_MISC_INFO_STREAM = 15, /* MDRawMiscInfo */ - MD_MEMORY_INFO_LIST_STREAM = 16, /* MDRawMemoryInfoList */ - MD_THREAD_INFO_LIST_STREAM = 17, - MD_HANDLE_OPERATION_LIST_STREAM = 18, - MD_LAST_RESERVED_STREAM = 0x0000ffff, - - /* Breakpad extension types. 0x4767 = "Gg" */ - MD_BREAKPAD_INFO_STREAM = 0x47670001, /* MDRawBreakpadInfo */ - MD_ASSERTION_INFO_STREAM = 0x47670002, /* MDRawAssertionInfo */ - /* These are additional minidump stream values which are specific to - * the linux breakpad implementation. */ - MD_LINUX_CPU_INFO = 0x47670003, /* /proc/cpuinfo */ - MD_LINUX_PROC_STATUS = 0x47670004, /* /proc/$x/status */ - MD_LINUX_LSB_RELEASE = 0x47670005, /* /etc/lsb-release */ - MD_LINUX_CMD_LINE = 0x47670006, /* /proc/$x/cmdline */ - MD_LINUX_ENVIRON = 0x47670007, /* /proc/$x/environ */ - MD_LINUX_AUXV = 0x47670008, /* /proc/$x/auxv */ - MD_LINUX_MAPS = 0x47670009, /* /proc/$x/maps */ - MD_LINUX_DSO_DEBUG = 0x4767000A /* MDRawDebug{32,64} */ -} MDStreamType; /* MINIDUMP_STREAM_TYPE */ - - -typedef struct { - uint32_t length; /* Length of buffer in bytes (not characters), - * excluding 0-terminator */ - uint16_t buffer[1]; /* UTF-16-encoded, 0-terminated */ -} MDString; /* MINIDUMP_STRING */ - -static const size_t MDString_minsize = offsetof(MDString, buffer[0]); - - -typedef struct { - uint32_t thread_id; - uint32_t suspend_count; - uint32_t priority_class; - uint32_t priority; - uint64_t teb; /* Thread environment block */ - MDMemoryDescriptor stack; - MDLocationDescriptor thread_context; /* MDRawContext[CPU] */ -} MDRawThread; /* MINIDUMP_THREAD */ - - -typedef struct { - uint32_t number_of_threads; - MDRawThread threads[1]; -} MDRawThreadList; /* MINIDUMP_THREAD_LIST */ - -static const size_t MDRawThreadList_minsize = offsetof(MDRawThreadList, - threads[0]); - - -typedef struct { - uint64_t base_of_image; - uint32_t size_of_image; - uint32_t checksum; /* 0 if unknown */ - uint32_t time_date_stamp; /* time_t */ - MDRVA module_name_rva; /* MDString, pathname or filename */ - MDVSFixedFileInfo version_info; - - /* The next field stores a CodeView record and is populated when a module's - * debug information resides in a PDB file. It identifies the PDB file. */ - MDLocationDescriptor cv_record; - - /* The next field is populated when a module's debug information resides - * in a DBG file. It identifies the DBG file. This field is effectively - * obsolete with modules built by recent toolchains. */ - MDLocationDescriptor misc_record; - - /* Alignment problem: reserved0 and reserved1 are defined by the platform - * SDK as 64-bit quantities. However, that results in a structure whose - * alignment is unpredictable on different CPUs and ABIs. If the ABI - * specifies full alignment of 64-bit quantities in structures (as ppc - * does), there will be padding between miscRecord and reserved0. If - * 64-bit quantities can be aligned on 32-bit boundaries (as on x86), - * this padding will not exist. (Note that the structure up to this point - * contains 1 64-bit member followed by 21 32-bit members.) - * As a workaround, reserved0 and reserved1 are instead defined here as - * four 32-bit quantities. This should be harmless, as there are - * currently no known uses for these fields. */ - uint32_t reserved0[2]; - uint32_t reserved1[2]; -} MDRawModule; /* MINIDUMP_MODULE */ - -/* The inclusion of a 64-bit type in MINIDUMP_MODULE forces the struct to - * be tail-padded out to a multiple of 64 bits under some ABIs (such as PPC). - * This doesn't occur on systems that don't tail-pad in this manner. Define - * this macro to be the usable size of the MDRawModule struct, and use it in - * place of sizeof(MDRawModule). */ -#define MD_MODULE_SIZE 108 - - -/* (MDRawModule).cv_record can reference MDCVInfoPDB20 or MDCVInfoPDB70. - * Ref.: http://www.debuginfo.com/articles/debuginfomatch.html - * MDCVInfoPDB70 is the expected structure type with recent toolchains. */ - -typedef struct { - uint32_t signature; - uint32_t offset; /* Offset to debug data (expect 0 in minidump) */ -} MDCVHeader; - -typedef struct { - MDCVHeader cv_header; - uint32_t signature; /* time_t debug information created */ - uint32_t age; /* revision of PDB file */ - uint8_t pdb_file_name[1]; /* Pathname or filename of PDB file */ -} MDCVInfoPDB20; - -static const size_t MDCVInfoPDB20_minsize = offsetof(MDCVInfoPDB20, - pdb_file_name[0]); - -#define MD_CVINFOPDB20_SIGNATURE 0x3031424e /* cvHeader.signature = '01BN' */ - -typedef struct { - uint32_t cv_signature; - MDGUID signature; /* GUID, identifies PDB file */ - uint32_t age; /* Identifies incremental changes to PDB file */ - uint8_t pdb_file_name[1]; /* Pathname or filename of PDB file, - * 0-terminated 8-bit character data (UTF-8?) */ -} MDCVInfoPDB70; - -static const size_t MDCVInfoPDB70_minsize = offsetof(MDCVInfoPDB70, - pdb_file_name[0]); - -#define MD_CVINFOPDB70_SIGNATURE 0x53445352 /* cvSignature = 'SDSR' */ - -/* - * Modern ELF toolchains insert a "build id" into the ELF headers that - * usually contains a hash of some ELF headers + sections to uniquely - * identify a binary. - * - * https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compiling-build-id.html - * https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292 - */ -typedef struct { - uint32_t cv_signature; - uint8_t build_id[1]; /* Bytes of build id from GNU_BUILD_ID ELF note. - * This is variable-length, but usually 20 bytes - * as the binutils ld default is a SHA-1 hash. */ -} MDCVInfoELF; - -static const size_t MDCVInfoELF_minsize = offsetof(MDCVInfoELF, - build_id[0]); - -#define MD_CVINFOELF_SIGNATURE 0x4270454c /* cvSignature = 'BpEL' */ - -/* In addition to the two CodeView record formats above, used for linking - * to external pdb files, it is possible for debugging data to be carried - * directly in the CodeView record itself. These signature values will - * be found in the first 4 bytes of the CodeView record. Additional values - * not commonly experienced in the wild are given by "Microsoft Symbol and - * Type Information", http://www.x86.org/ftp/manuals/tools/sym.pdf, section - * 7.2. An in-depth description of the CodeView 4.1 format is given by - * "Undocumented Windows 2000 Secrets", Windows 2000 Debugging Support/ - * Microsoft Symbol File Internals/CodeView Subsections, - * http://www.rawol.com/features/undocumented/sbs-w2k-1-windows-2000-debugging-support.pdf - */ -#define MD_CVINFOCV41_SIGNATURE 0x3930424e /* '90BN', CodeView 4.10. */ -#define MD_CVINFOCV50_SIGNATURE 0x3131424e /* '11BN', CodeView 5.0, - * MS C7-format (/Z7). */ - -#define MD_CVINFOUNKNOWN_SIGNATURE 0xffffffff /* An unlikely value. */ - -/* (MDRawModule).miscRecord can reference MDImageDebugMisc. The Windows - * structure is actually defined in WinNT.h. This structure is effectively - * obsolete with modules built by recent toolchains. */ - -typedef struct { - uint32_t data_type; /* IMAGE_DEBUG_TYPE_*, not defined here because - * this debug record type is mostly obsolete. */ - uint32_t length; /* Length of entire MDImageDebugMisc structure */ - uint8_t unicode; /* True if data is multibyte */ - uint8_t reserved[3]; - uint8_t data[1]; -} MDImageDebugMisc; /* IMAGE_DEBUG_MISC */ - -static const size_t MDImageDebugMisc_minsize = offsetof(MDImageDebugMisc, - data[0]); - - -typedef struct { - uint32_t number_of_modules; - MDRawModule modules[1]; -} MDRawModuleList; /* MINIDUMP_MODULE_LIST */ - -static const size_t MDRawModuleList_minsize = offsetof(MDRawModuleList, - modules[0]); - - -typedef struct { - uint32_t number_of_memory_ranges; - MDMemoryDescriptor memory_ranges[1]; -} MDRawMemoryList; /* MINIDUMP_MEMORY_LIST */ - -static const size_t MDRawMemoryList_minsize = offsetof(MDRawMemoryList, - memory_ranges[0]); - - -#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15 - -typedef struct { - uint32_t exception_code; /* Windows: MDExceptionCodeWin, - * Mac OS X: MDExceptionMac, - * Linux: MDExceptionCodeLinux. */ - uint32_t exception_flags; /* Windows: 1 if noncontinuable, - Mac OS X: MDExceptionCodeMac. */ - uint64_t exception_record; /* Address (in the minidump-producing host's - * memory) of another MDException, for - * nested exceptions. */ - uint64_t exception_address; /* The address that caused the exception. - * Mac OS X: exception subcode (which is - * typically the address). */ - uint32_t number_parameters; /* Number of valid elements in - * exception_information. */ - uint32_t __align; - uint64_t exception_information[MD_EXCEPTION_MAXIMUM_PARAMETERS]; -} MDException; /* MINIDUMP_EXCEPTION */ - -#include "minidump_exception_linux.h" -#include "minidump_exception_mac.h" -#include "minidump_exception_ps3.h" -#include "minidump_exception_solaris.h" -#include "minidump_exception_win32.h" - -typedef struct { - uint32_t thread_id; /* Thread in which the exception - * occurred. Corresponds to - * (MDRawThread).thread_id. */ - uint32_t __align; - MDException exception_record; - MDLocationDescriptor thread_context; /* MDRawContext[CPU] */ -} MDRawExceptionStream; /* MINIDUMP_EXCEPTION_STREAM */ - - -typedef union { - struct { - uint32_t vendor_id[3]; /* cpuid 0: ebx, edx, ecx */ - uint32_t version_information; /* cpuid 1: eax */ - uint32_t feature_information; /* cpuid 1: edx */ - uint32_t amd_extended_cpu_features; /* cpuid 0x80000001, ebx */ - } x86_cpu_info; - struct { - uint32_t cpuid; - uint32_t elf_hwcaps; /* linux specific, 0 otherwise */ - } arm_cpu_info; - struct { - uint64_t processor_features[2]; - } other_cpu_info; -} MDCPUInformation; /* CPU_INFORMATION */ - -/* For (MDCPUInformation).arm_cpu_info.elf_hwcaps. - * This matches the Linux kernel definitions from */ -typedef enum { - MD_CPU_ARM_ELF_HWCAP_SWP = (1 << 0), - MD_CPU_ARM_ELF_HWCAP_HALF = (1 << 1), - MD_CPU_ARM_ELF_HWCAP_THUMB = (1 << 2), - MD_CPU_ARM_ELF_HWCAP_26BIT = (1 << 3), - MD_CPU_ARM_ELF_HWCAP_FAST_MULT = (1 << 4), - MD_CPU_ARM_ELF_HWCAP_FPA = (1 << 5), - MD_CPU_ARM_ELF_HWCAP_VFP = (1 << 6), - MD_CPU_ARM_ELF_HWCAP_EDSP = (1 << 7), - MD_CPU_ARM_ELF_HWCAP_JAVA = (1 << 8), - MD_CPU_ARM_ELF_HWCAP_IWMMXT = (1 << 9), - MD_CPU_ARM_ELF_HWCAP_CRUNCH = (1 << 10), - MD_CPU_ARM_ELF_HWCAP_THUMBEE = (1 << 11), - MD_CPU_ARM_ELF_HWCAP_NEON = (1 << 12), - MD_CPU_ARM_ELF_HWCAP_VFPv3 = (1 << 13), - MD_CPU_ARM_ELF_HWCAP_VFPv3D16 = (1 << 14), - MD_CPU_ARM_ELF_HWCAP_TLS = (1 << 15), - MD_CPU_ARM_ELF_HWCAP_VFPv4 = (1 << 16), - MD_CPU_ARM_ELF_HWCAP_IDIVA = (1 << 17), - MD_CPU_ARM_ELF_HWCAP_IDIVT = (1 << 18), -} MDCPUInformationARMElfHwCaps; - -typedef struct { - /* The next 3 fields and numberOfProcessors are from the SYSTEM_INFO - * structure as returned by GetSystemInfo */ - uint16_t processor_architecture; - uint16_t processor_level; /* x86: 5 = 586, 6 = 686, ... */ - /* ARM: 6 = ARMv6, 7 = ARMv7 ... */ - uint16_t processor_revision; /* x86: 0xMMSS, where MM=model, - * SS=stepping */ - /* ARM: 0 */ - - uint8_t number_of_processors; - uint8_t product_type; /* Windows: VER_NT_* from WinNT.h */ - - /* The next 5 fields are from the OSVERSIONINFO structure as returned - * by GetVersionEx */ - uint32_t major_version; - uint32_t minor_version; - uint32_t build_number; - uint32_t platform_id; - MDRVA csd_version_rva; /* MDString further identifying the - * host OS. - * Windows: name of the installed OS - * service pack. - * Mac OS X: the Apple OS build number - * (sw_vers -buildVersion). - * Linux: uname -srvmo */ - - uint16_t suite_mask; /* Windows: VER_SUITE_* from WinNT.h */ - uint16_t reserved2; - - MDCPUInformation cpu; -} MDRawSystemInfo; /* MINIDUMP_SYSTEM_INFO */ - -/* For (MDRawSystemInfo).processor_architecture: */ -typedef enum { - MD_CPU_ARCHITECTURE_X86 = 0, /* PROCESSOR_ARCHITECTURE_INTEL */ - MD_CPU_ARCHITECTURE_MIPS = 1, /* PROCESSOR_ARCHITECTURE_MIPS */ - MD_CPU_ARCHITECTURE_ALPHA = 2, /* PROCESSOR_ARCHITECTURE_ALPHA */ - MD_CPU_ARCHITECTURE_PPC = 3, /* PROCESSOR_ARCHITECTURE_PPC */ - MD_CPU_ARCHITECTURE_SHX = 4, /* PROCESSOR_ARCHITECTURE_SHX - * (Super-H) */ - MD_CPU_ARCHITECTURE_ARM = 5, /* PROCESSOR_ARCHITECTURE_ARM */ - MD_CPU_ARCHITECTURE_IA64 = 6, /* PROCESSOR_ARCHITECTURE_IA64 */ - MD_CPU_ARCHITECTURE_ALPHA64 = 7, /* PROCESSOR_ARCHITECTURE_ALPHA64 */ - MD_CPU_ARCHITECTURE_MSIL = 8, /* PROCESSOR_ARCHITECTURE_MSIL - * (Microsoft Intermediate Language) */ - MD_CPU_ARCHITECTURE_AMD64 = 9, /* PROCESSOR_ARCHITECTURE_AMD64 */ - MD_CPU_ARCHITECTURE_X86_WIN64 = 10, - /* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */ - MD_CPU_ARCHITECTURE_SPARC = 0x8001, /* Breakpad-defined value for SPARC */ - MD_CPU_ARCHITECTURE_PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */ - MD_CPU_ARCHITECTURE_ARM64 = 0x8003, /* Breakpad-defined value for ARM64 */ - MD_CPU_ARCHITECTURE_MIPS64 = 0x8004, /* Breakpad-defined value for MIPS64 */ - MD_CPU_ARCHITECTURE_UNKNOWN = 0xffff /* PROCESSOR_ARCHITECTURE_UNKNOWN */ -} MDCPUArchitecture; - -/* For (MDRawSystemInfo).platform_id: */ -typedef enum { - MD_OS_WIN32S = 0, /* VER_PLATFORM_WIN32s (Windows 3.1) */ - MD_OS_WIN32_WINDOWS = 1, /* VER_PLATFORM_WIN32_WINDOWS (Windows 95-98-Me) */ - MD_OS_WIN32_NT = 2, /* VER_PLATFORM_WIN32_NT (Windows NT, 2000+) */ - MD_OS_WIN32_CE = 3, /* VER_PLATFORM_WIN32_CE, VER_PLATFORM_WIN32_HH - * (Windows CE, Windows Mobile, "Handheld") */ - - /* The following values are Breakpad-defined. */ - MD_OS_UNIX = 0x8000, /* Generic Unix-ish */ - MD_OS_MAC_OS_X = 0x8101, /* Mac OS X/Darwin */ - MD_OS_IOS = 0x8102, /* iOS */ - MD_OS_LINUX = 0x8201, /* Linux */ - MD_OS_SOLARIS = 0x8202, /* Solaris */ - MD_OS_ANDROID = 0x8203, /* Android */ - MD_OS_PS3 = 0x8204, /* PS3 */ - MD_OS_NACL = 0x8205 /* Native Client (NaCl) */ -} MDOSPlatform; - -typedef struct { - uint16_t year; - uint16_t month; - uint16_t day_of_week; - uint16_t day; - uint16_t hour; - uint16_t minute; - uint16_t second; - uint16_t milliseconds; -} MDSystemTime; /* SYSTEMTIME */ - -typedef struct { - /* Required field. The bias is the difference, in minutes, between - * Coordinated Universal Time (UTC) and local time. - * Formula: UTC = local time + bias */ - int32_t bias; - /* A description for standard time. For example, "EST" could indicate Eastern - * Standard Time. In practice this contains the full time zone names. This - * string can be empty. */ - uint16_t standard_name[32]; /* UTF-16-encoded, 0-terminated */ - /* A MDSystemTime structure that contains a date and local time when the - * transition from daylight saving time to standard time occurs on this - * operating system. If the time zone does not support daylight saving time, - * the month member in the MDSystemTime structure is zero. */ - MDSystemTime standard_date; - /* The bias value to be used during local time translations that occur during - * standard time. */ - int32_t standard_bias; - /* A description for daylight saving time. For example, "PDT" could indicate - * Pacific Daylight Time. In practice this contains the full time zone names. - * This string can be empty. */ - uint16_t daylight_name[32]; /* UTF-16-encoded, 0-terminated */ - /* A MDSystemTime structure that contains a date and local time when the - * transition from standard time to daylight saving time occurs on this - * operating system. If the time zone does not support daylight saving time, - * the month member in the MDSystemTime structure is zero.*/ - MDSystemTime daylight_date; - /* The bias value to be used during local time translations that occur during - * daylight saving time. */ - int32_t daylight_bias; -} MDTimeZoneInformation; /* TIME_ZONE_INFORMATION */ - -/* MAX_PATH from windef.h */ -#define MD_MAX_PATH 260 - -/* The miscellaneous information stream contains a variety - * of small pieces of information. A member is valid if - * it's within the available size and its corresponding - * bit is set. */ -typedef struct { - uint32_t size_of_info; /* Length of entire MDRawMiscInfo structure. */ - uint32_t flags1; - - /* The next field is only valid if flags1 contains - * MD_MISCINFO_FLAGS1_PROCESS_ID. */ - uint32_t process_id; - - /* The next 3 fields are only valid if flags1 contains - * MD_MISCINFO_FLAGS1_PROCESS_TIMES. */ - uint32_t process_create_time; /* time_t process started */ - uint32_t process_user_time; /* seconds of user CPU time */ - uint32_t process_kernel_time; /* seconds of kernel CPU time */ - - /* The following fields are not present in MINIDUMP_MISC_INFO but are - * in MINIDUMP_MISC_INFO_2. When this struct is populated, these values - * may not be set. Use flags1 and size_of_info to determine whether these - * values are present. These are only valid when flags1 contains - * MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO. */ - uint32_t processor_max_mhz; - uint32_t processor_current_mhz; - uint32_t processor_mhz_limit; - uint32_t processor_max_idle_state; - uint32_t processor_current_idle_state; - - /* The following fields are not present in MINIDUMP_MISC_INFO_2 but are - * in MINIDUMP_MISC_INFO_3. When this struct is populated, these values - * may not be set. Use flags1 and size_of_info to determine whether these - * values are present. */ - - /* The following field is only valid if flags1 contains - * MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY. */ - uint32_t process_integrity_level; - - /* The following field is only valid if flags1 contains - * MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS. */ - uint32_t process_execute_flags; - - /* The following field is only valid if flags1 contains - * MD_MISCINFO_FLAGS1_PROTECTED_PROCESS. */ - uint32_t protected_process; - - /* The following 2 fields are only valid if flags1 contains - * MD_MISCINFO_FLAGS1_TIMEZONE. */ - uint32_t time_zone_id; - MDTimeZoneInformation time_zone; - - /* The following fields are not present in MINIDUMP_MISC_INFO_3 but are - * in MINIDUMP_MISC_INFO_4. When this struct is populated, these values - * may not be set. Use flags1 and size_of_info to determine whether these - * values are present. */ - - /* The following 2 fields are only valid if flags1 contains - * MD_MISCINFO_FLAGS1_BUILDSTRING. */ - uint16_t build_string[MD_MAX_PATH]; /* UTF-16-encoded, 0-terminated */ - uint16_t dbg_bld_str[40]; /* UTF-16-encoded, 0-terminated */ -} MDRawMiscInfo; /* MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2, - * MINIDUMP_MISC_INFO_3, MINIDUMP_MISC_INFO_4, - * MINIDUMP_MISC_INFO_N */ - -static const size_t MD_MISCINFO_SIZE = - offsetof(MDRawMiscInfo, processor_max_mhz); -static const size_t MD_MISCINFO2_SIZE = - offsetof(MDRawMiscInfo, process_integrity_level); -static const size_t MD_MISCINFO3_SIZE = - offsetof(MDRawMiscInfo, build_string[0]); -static const size_t MD_MISCINFO4_SIZE = sizeof(MDRawMiscInfo); - -/* For (MDRawMiscInfo).flags1. These values indicate which fields in the - * MDRawMiscInfoStructure are valid. */ -typedef enum { - MD_MISCINFO_FLAGS1_PROCESS_ID = 0x00000001, - /* MINIDUMP_MISC1_PROCESS_ID */ - MD_MISCINFO_FLAGS1_PROCESS_TIMES = 0x00000002, - /* MINIDUMP_MISC1_PROCESS_TIMES */ - MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO = 0x00000004, - /* MINIDUMP_MISC1_PROCESSOR_POWER_INFO */ - MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY = 0x00000010, - /* MINIDUMP_MISC3_PROCESS_INTEGRITY */ - MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS = 0x00000020, - /* MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS */ - MD_MISCINFO_FLAGS1_TIMEZONE = 0x00000040, - /* MINIDUMP_MISC3_TIMEZONE */ - MD_MISCINFO_FLAGS1_PROTECTED_PROCESS = 0x00000080, - /* MINIDUMP_MISC3_PROTECTED_PROCESS */ - MD_MISCINFO_FLAGS1_BUILDSTRING = 0x00000100, - /* MINIDUMP_MISC4_BUILDSTRING */ -} MDMiscInfoFlags1; - -/* - * Around DbgHelp version 6.0, the style of new LIST structures changed - * from including an array of length 1 at the end of the struct to - * represent the variable-length data to including explicit - * "size of header", "size of entry" and "number of entries" fields - * in the header, presumably to allow backwards-compatibly-extending - * the structures in the future. The actual list entries follow the - * header data directly in this case. - */ - -typedef struct { - uint32_t size_of_header; /* sizeof(MDRawMemoryInfoList) */ - uint32_t size_of_entry; /* sizeof(MDRawMemoryInfo) */ - uint64_t number_of_entries; -} MDRawMemoryInfoList; /* MINIDUMP_MEMORY_INFO_LIST */ - -typedef struct { - uint64_t base_address; /* Base address of a region of pages */ - uint64_t allocation_base; /* Base address of a range of pages - * within this region. */ - uint32_t allocation_protection; /* Memory protection when this region - * was originally allocated: - * MDMemoryProtection */ - uint32_t __alignment1; - uint64_t region_size; - uint32_t state; /* MDMemoryState */ - uint32_t protection; /* MDMemoryProtection */ - uint32_t type; /* MDMemoryType */ - uint32_t __alignment2; -} MDRawMemoryInfo; /* MINIDUMP_MEMORY_INFO */ - -/* For (MDRawMemoryInfo).state */ -typedef enum { - MD_MEMORY_STATE_COMMIT = 0x1000, /* physical storage has been allocated */ - MD_MEMORY_STATE_RESERVE = 0x2000, /* reserved, but no physical storage */ - MD_MEMORY_STATE_FREE = 0x10000 /* available to be allocated */ -} MDMemoryState; - -/* For (MDRawMemoryInfo).allocation_protection and .protection */ -typedef enum { - MD_MEMORY_PROTECT_NOACCESS = 0x01, /* PAGE_NOACCESS */ - MD_MEMORY_PROTECT_READONLY = 0x02, /* PAGE_READONLY */ - MD_MEMORY_PROTECT_READWRITE = 0x04, /* PAGE_READWRITE */ - MD_MEMORY_PROTECT_WRITECOPY = 0x08, /* PAGE_WRITECOPY */ - MD_MEMORY_PROTECT_EXECUTE = 0x10, /* PAGE_EXECUTE */ - MD_MEMORY_PROTECT_EXECUTE_READ = 0x20, /* PAGE_EXECUTE_READ */ - MD_MEMORY_PROTECT_EXECUTE_READWRITE = 0x40, /* PAGE_EXECUTE_READWRITE */ - MD_MEMORY_PROTECT_EXECUTE_WRITECOPY = 0x80, /* PAGE_EXECUTE_WRITECOPY */ - /* These options can be combined with the previous flags. */ - MD_MEMORY_PROTECT_GUARD = 0x100, /* PAGE_GUARD */ - MD_MEMORY_PROTECT_NOCACHE = 0x200, /* PAGE_NOCACHE */ - MD_MEMORY_PROTECT_WRITECOMBINE = 0x400, /* PAGE_WRITECOMBINE */ -} MDMemoryProtection; - -/* Used to mask the mutually exclusive options from the combinable flags. */ -const uint32_t MD_MEMORY_PROTECTION_ACCESS_MASK = 0xFF; - -/* For (MDRawMemoryInfo).type */ -typedef enum { - MD_MEMORY_TYPE_PRIVATE = 0x20000, /* not shared by other processes */ - MD_MEMORY_TYPE_MAPPED = 0x40000, /* mapped into the view of a section */ - MD_MEMORY_TYPE_IMAGE = 0x1000000 /* mapped into the view of an image */ -} MDMemoryType; - -/* - * Breakpad extension types - */ - - -typedef struct { - /* validity is a bitmask with values from MDBreakpadInfoValidity, indicating - * which of the other fields in the structure are valid. */ - uint32_t validity; - - /* Thread ID of the handler thread. dump_thread_id should correspond to - * the thread_id of an MDRawThread in the minidump's MDRawThreadList if - * a dedicated thread in that list was used to produce the minidump. If - * the MDRawThreadList does not contain a dedicated thread used to produce - * the minidump, this field should be set to 0 and the validity field - * must not contain MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID. */ - uint32_t dump_thread_id; - - /* Thread ID of the thread that requested the minidump be produced. As - * with dump_thread_id, requesting_thread_id should correspond to the - * thread_id of an MDRawThread in the minidump's MDRawThreadList. For - * minidumps produced as a result of an exception, requesting_thread_id - * will be the same as the MDRawExceptionStream's thread_id field. For - * minidumps produced "manually" at the program's request, - * requesting_thread_id will indicate which thread caused the dump to be - * written. If the minidump was produced at the request of something - * other than a thread in the MDRawThreadList, this field should be set - * to 0 and the validity field must not contain - * MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID. */ - uint32_t requesting_thread_id; -} MDRawBreakpadInfo; - -/* For (MDRawBreakpadInfo).validity: */ -typedef enum { - /* When set, the dump_thread_id field is valid. */ - MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID = 1 << 0, - - /* When set, the requesting_thread_id field is valid. */ - MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID = 1 << 1 -} MDBreakpadInfoValidity; - -typedef struct { - /* expression, function, and file are 0-terminated UTF-16 strings. They - * may be truncated if necessary, but should always be 0-terminated when - * written to a file. - * Fixed-length strings are used because MiniDumpWriteDump doesn't offer - * a way for user streams to point to arbitrary RVAs for strings. */ - uint16_t expression[128]; /* Assertion that failed... */ - uint16_t function[128]; /* ...within this function... */ - uint16_t file[128]; /* ...in this file... */ - uint32_t line; /* ...at this line. */ - uint32_t type; -} MDRawAssertionInfo; - -/* For (MDRawAssertionInfo).type: */ -typedef enum { - MD_ASSERTION_INFO_TYPE_UNKNOWN = 0, - - /* Used for assertions that would be raised by the MSVC CRT but are - * directed to an invalid parameter handler instead. */ - MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER, - - /* Used for assertions that would be raised by the MSVC CRT but are - * directed to a pure virtual call handler instead. */ - MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL -} MDAssertionInfoData; - -/* These structs are used to store the DSO debug data in Linux minidumps, - * which is necessary for converting minidumps to usable coredumps. - * Because of a historical accident, several fields are variably encoded - * according to client word size, so tools potentially need to support both. */ - -typedef struct { - uint32_t addr; - MDRVA name; - uint32_t ld; -} MDRawLinkMap32; - -typedef struct { - uint32_t version; - MDRVA map; /* array of MDRawLinkMap32 */ - uint32_t dso_count; - uint32_t brk; - uint32_t ldbase; - uint32_t dynamic; -} MDRawDebug32; - -typedef struct { - uint64_t addr; - MDRVA name; - uint64_t ld; -} MDRawLinkMap64; - -typedef struct { - uint32_t version; - MDRVA map; /* array of MDRawLinkMap64 */ - uint32_t dso_count; - uint64_t brk; - uint64_t ldbase; - uint64_t dynamic; -} MDRawDebug64; - -#if defined(_MSC_VER) -#pragma warning(pop) -#endif /* _MSC_VER */ - - -#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ */ diff --git a/sources/google-breakpad/src/google_breakpad/common/minidump_size.h b/sources/google-breakpad/src/google_breakpad/common/minidump_size.h deleted file mode 100644 index fae57923..00000000 --- a/sources/google-breakpad/src/google_breakpad/common/minidump_size.h +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright (c) 2007, Google Inc. -// 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. -// * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT -// OWNER 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. */ - -// minidump_size.h: Provides a C++ template for programmatic access to -// the sizes of various types defined in minidump_format.h. -// -// Author: Mark Mentovai - -#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__ -#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__ - -#include - -#include "google_breakpad/common/minidump_format.h" - -namespace google_breakpad { - -template -class minidump_size { - public: - static size_t size() { return sizeof(T); } -}; - -// Explicit specializations for variable-length types. The size returned -// for these should be the size for an object without its variable-length -// section. - -template<> -class minidump_size { - public: - static size_t size() { return MDString_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDRawThreadList_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDCVInfoPDB20_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDCVInfoPDB70_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDCVInfoELF_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDImageDebugMisc_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDRawModuleList_minsize; } -}; - -template<> -class minidump_size { - public: - static size_t size() { return MDRawMemoryList_minsize; } -}; - -// Explicit specialization for MDRawModule, for which sizeof may include -// tail-padding on some architectures but not others. - -template<> -class minidump_size { - public: - static size_t size() { return MD_MODULE_SIZE; } -}; - -} // namespace google_breakpad - -#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__ diff --git a/sources/google-breakpad/src/third_party/lss/linux_syscall_support.h b/sources/google-breakpad/src/third_party/lss/linux_syscall_support.h deleted file mode 100644 index 8a42c1c8..00000000 --- a/sources/google-breakpad/src/third_party/lss/linux_syscall_support.h +++ /dev/null @@ -1,4037 +0,0 @@ -/* Copyright (c) 2005-2011, Google Inc. - * 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. - * * Neither the name of Google Inc. 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 COPYRIGHT HOLDERS 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 COPYRIGHT - * OWNER 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. - * - * --- - * Author: Markus Gutschke - */ - -/* This file includes Linux-specific support functions common to the - * coredumper and the thread lister; primarily, this is a collection - * of direct system calls, and a couple of symbols missing from - * standard header files. - * There are a few options that the including file can set to control - * the behavior of this file: - * - * SYS_CPLUSPLUS: - * The entire header file will normally be wrapped in 'extern "C" { }", - * making it suitable for compilation as both C and C++ source. If you - * do not want to do this, you can set the SYS_CPLUSPLUS macro to inhibit - * the wrapping. N.B. doing so will suppress inclusion of all prerequisite - * system header files, too. It is the caller's responsibility to provide - * the necessary definitions. - * - * SYS_ERRNO: - * All system calls will update "errno" unless overriden by setting the - * SYS_ERRNO macro prior to including this file. SYS_ERRNO should be - * an l-value. - * - * SYS_INLINE: - * New symbols will be defined "static inline", unless overridden by - * the SYS_INLINE macro. - * - * SYS_LINUX_SYSCALL_SUPPORT_H - * This macro is used to avoid multiple inclusions of this header file. - * If you need to include this file more than once, make sure to - * unset SYS_LINUX_SYSCALL_SUPPORT_H before each inclusion. - * - * SYS_PREFIX: - * New system calls will have a prefix of "sys_" unless overridden by - * the SYS_PREFIX macro. Valid values for this macro are [0..9] which - * results in prefixes "sys[0..9]_". It is also possible to set this - * macro to -1, which avoids all prefixes. - * - * SYS_SYSCALL_ENTRYPOINT: - * Some applications (such as sandboxes that filter system calls), need - * to be able to run custom-code each time a system call is made. If this - * macro is defined, it expands to the name of a "common" symbol. If - * this symbol is assigned a non-NULL pointer value, it is used as the - * address of the system call entrypoint. - * A pointer to this symbol can be obtained by calling - * get_syscall_entrypoint() - * - * This file defines a few internal symbols that all start with "LSS_". - * Do not access these symbols from outside this file. They are not part - * of the supported API. - */ -#ifndef SYS_LINUX_SYSCALL_SUPPORT_H -#define SYS_LINUX_SYSCALL_SUPPORT_H - -/* We currently only support x86-32, x86-64, ARM, MIPS, and PPC on Linux. - * Porting to other related platforms should not be difficult. - */ -#if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) || \ - defined(__mips__) || defined(__PPC__) || defined(__ARM_EABI__) || \ - defined(__aarch64__)) \ - && (defined(__linux) || defined(__ANDROID__)) - -#ifndef SYS_CPLUSPLUS -#ifdef __cplusplus -/* Some system header files in older versions of gcc neglect to properly - * handle being included from C++. As it appears to be harmless to have - * multiple nested 'extern "C"' blocks, just add another one here. - */ -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __mips__ -/* Include definitions of the ABI currently in use. */ -#ifdef __ANDROID__ -/* Android doesn't have sgidefs.h, but does have asm/sgidefs.h, - * which has the definitions we need. - */ -#include -#else -#include -#endif -#endif -#endif - -/* The Android NDK's #defines these macros as aliases - * to their non-64 counterparts. To avoid naming conflict, remove them. */ -#ifdef __ANDROID__ - /* These are restored by the corresponding #pragma pop_macro near - * the end of this file. */ -# pragma push_macro("stat64") -# pragma push_macro("fstat64") -# pragma push_macro("lstat64") -# undef stat64 -# undef fstat64 -# undef lstat64 -#endif - -/* As glibc often provides subtly incompatible data structures (and implicit - * wrapper functions that convert them), we provide our own kernel data - * structures for use by the system calls. - * These structures have been developed by using Linux 2.6.23 headers for - * reference. Note though, we do not care about exact API compatibility - * with the kernel, and in fact the kernel often does not have a single - * API that works across architectures. Instead, we try to mimic the glibc - * API where reasonable, and only guarantee ABI compatibility with the - * kernel headers. - * Most notably, here are a few changes that were made to the structures - * defined by kernel headers: - * - * - we only define structures, but not symbolic names for kernel data - * types. For the latter, we directly use the native C datatype - * (i.e. "unsigned" instead of "mode_t"). - * - in a few cases, it is possible to define identical structures for - * both 32bit (e.g. i386) and 64bit (e.g. x86-64) platforms by - * standardizing on the 64bit version of the data types. In particular, - * this means that we use "unsigned" where the 32bit headers say - * "unsigned long". - * - overall, we try to minimize the number of cases where we need to - * conditionally define different structures. - * - the "struct kernel_sigaction" class of structures have been - * modified to more closely mimic glibc's API by introducing an - * anonymous union for the function pointer. - * - a small number of field names had to have an underscore appended to - * them, because glibc defines a global macro by the same name. - */ - -/* include/linux/dirent.h */ -struct kernel_dirent64 { - unsigned long long d_ino; - long long d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[256]; -}; - -/* include/linux/dirent.h */ -#if defined(__aarch64__) -// aarch64 only defines dirent64, just uses that for dirent too. -#define kernel_dirent kernel_dirent64 -#else -struct kernel_dirent { - long d_ino; - long d_off; - unsigned short d_reclen; - char d_name[256]; -}; -#endif - -/* include/linux/uio.h */ -struct kernel_iovec { - void *iov_base; - unsigned long iov_len; -}; - -/* include/linux/socket.h */ -struct kernel_msghdr { - void *msg_name; - int msg_namelen; - struct kernel_iovec*msg_iov; - unsigned long msg_iovlen; - void *msg_control; - unsigned long msg_controllen; - unsigned msg_flags; -}; - -/* include/asm-generic/poll.h */ -struct kernel_pollfd { - int fd; - short events; - short revents; -}; - -/* include/linux/resource.h */ -struct kernel_rlimit { - unsigned long rlim_cur; - unsigned long rlim_max; -}; - -/* include/linux/time.h */ -struct kernel_timespec { - long tv_sec; - long tv_nsec; -}; - -/* include/linux/time.h */ -struct kernel_timeval { - long tv_sec; - long tv_usec; -}; - -/* include/linux/resource.h */ -struct kernel_rusage { - struct kernel_timeval ru_utime; - struct kernel_timeval ru_stime; - long ru_maxrss; - long ru_ixrss; - long ru_idrss; - long ru_isrss; - long ru_minflt; - long ru_majflt; - long ru_nswap; - long ru_inblock; - long ru_oublock; - long ru_msgsnd; - long ru_msgrcv; - long ru_nsignals; - long ru_nvcsw; - long ru_nivcsw; -}; - -#if defined(__i386__) || defined(__ARM_EABI__) || defined(__ARM_ARCH_3__) \ - || defined(__PPC__) - -/* include/asm-{arm,i386,mips,ppc}/signal.h */ -struct kernel_old_sigaction { - union { - void (*sa_handler_)(int); - void (*sa_sigaction_)(int, siginfo_t *, void *); - }; - unsigned long sa_mask; - unsigned long sa_flags; - void (*sa_restorer)(void); -} __attribute__((packed,aligned(4))); -#elif (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) - #define kernel_old_sigaction kernel_sigaction -#elif defined(__aarch64__) - // No kernel_old_sigaction defined for arm64. -#endif - -/* Some kernel functions (e.g. sigaction() in 2.6.23) require that the - * exactly match the size of the signal set, even though the API was - * intended to be extensible. We define our own KERNEL_NSIG to deal with - * this. - * Please note that glibc provides signals [1.._NSIG-1], whereas the - * kernel (and this header) provides the range [1..KERNEL_NSIG]. The - * actual number of signals is obviously the same, but the constants - * differ by one. - */ -#ifdef __mips__ -#define KERNEL_NSIG 128 -#else -#define KERNEL_NSIG 64 -#endif - -/* include/asm-{arm,aarch64,i386,mips,x86_64}/signal.h */ -struct kernel_sigset_t { - unsigned long sig[(KERNEL_NSIG + 8*sizeof(unsigned long) - 1)/ - (8*sizeof(unsigned long))]; -}; - -/* include/asm-{arm,i386,mips,x86_64,ppc}/signal.h */ -struct kernel_sigaction { -#ifdef __mips__ - unsigned long sa_flags; - union { - void (*sa_handler_)(int); - void (*sa_sigaction_)(int, siginfo_t *, void *); - }; - struct kernel_sigset_t sa_mask; -#else - union { - void (*sa_handler_)(int); - void (*sa_sigaction_)(int, siginfo_t *, void *); - }; - unsigned long sa_flags; - void (*sa_restorer)(void); - struct kernel_sigset_t sa_mask; -#endif -}; - -/* include/linux/socket.h */ -struct kernel_sockaddr { - unsigned short sa_family; - char sa_data[14]; -}; - -/* include/asm-{arm,aarch64,i386,mips,ppc}/stat.h */ -#ifdef __mips__ -#if _MIPS_SIM == _MIPS_SIM_ABI64 -struct kernel_stat { -#else -struct kernel_stat64 { -#endif - unsigned st_dev; - unsigned __pad0[3]; - unsigned long long st_ino; - unsigned st_mode; - unsigned st_nlink; - unsigned st_uid; - unsigned st_gid; - unsigned st_rdev; - unsigned __pad1[3]; - long long st_size; - unsigned st_atime_; - unsigned st_atime_nsec_; - unsigned st_mtime_; - unsigned st_mtime_nsec_; - unsigned st_ctime_; - unsigned st_ctime_nsec_; - unsigned st_blksize; - unsigned __pad2; - unsigned long long st_blocks; -}; -#elif defined __PPC__ -struct kernel_stat64 { - unsigned long long st_dev; - unsigned long long st_ino; - unsigned st_mode; - unsigned st_nlink; - unsigned st_uid; - unsigned st_gid; - unsigned long long st_rdev; - unsigned short int __pad2; - long long st_size; - long st_blksize; - long long st_blocks; - long st_atime_; - unsigned long st_atime_nsec_; - long st_mtime_; - unsigned long st_mtime_nsec_; - long st_ctime_; - unsigned long st_ctime_nsec_; - unsigned long __unused4; - unsigned long __unused5; -}; -#else -struct kernel_stat64 { - unsigned long long st_dev; - unsigned char __pad0[4]; - unsigned __st_ino; - unsigned st_mode; - unsigned st_nlink; - unsigned st_uid; - unsigned st_gid; - unsigned long long st_rdev; - unsigned char __pad3[4]; - long long st_size; - unsigned st_blksize; - unsigned long long st_blocks; - unsigned st_atime_; - unsigned st_atime_nsec_; - unsigned st_mtime_; - unsigned st_mtime_nsec_; - unsigned st_ctime_; - unsigned st_ctime_nsec_; - unsigned long long st_ino; -}; -#endif - -/* include/asm-{arm,aarch64,i386,mips,x86_64,ppc}/stat.h */ -#if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) -struct kernel_stat { - /* The kernel headers suggest that st_dev and st_rdev should be 32bit - * quantities encoding 12bit major and 20bit minor numbers in an interleaved - * format. In reality, we do not see useful data in the top bits. So, - * we'll leave the padding in here, until we find a better solution. - */ - unsigned short st_dev; - short pad1; - unsigned st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned short st_rdev; - short pad2; - unsigned st_size; - unsigned st_blksize; - unsigned st_blocks; - unsigned st_atime_; - unsigned st_atime_nsec_; - unsigned st_mtime_; - unsigned st_mtime_nsec_; - unsigned st_ctime_; - unsigned st_ctime_nsec_; - unsigned __unused4; - unsigned __unused5; -}; -#elif defined(__x86_64__) -struct kernel_stat { - uint64_t st_dev; - uint64_t st_ino; - uint64_t st_nlink; - unsigned st_mode; - unsigned st_uid; - unsigned st_gid; - unsigned __pad0; - uint64_t st_rdev; - int64_t st_size; - int64_t st_blksize; - int64_t st_blocks; - uint64_t st_atime_; - uint64_t st_atime_nsec_; - uint64_t st_mtime_; - uint64_t st_mtime_nsec_; - uint64_t st_ctime_; - uint64_t st_ctime_nsec_; - int64_t __unused4[3]; -}; -#elif defined(__PPC__) -struct kernel_stat { - unsigned st_dev; - unsigned long st_ino; // ino_t - unsigned long st_mode; // mode_t - unsigned short st_nlink; // nlink_t - unsigned st_uid; // uid_t - unsigned st_gid; // gid_t - unsigned st_rdev; - long st_size; // off_t - unsigned long st_blksize; - unsigned long st_blocks; - unsigned long st_atime_; - unsigned long st_atime_nsec_; - unsigned long st_mtime_; - unsigned long st_mtime_nsec_; - unsigned long st_ctime_; - unsigned long st_ctime_nsec_; - unsigned long __unused4; - unsigned long __unused5; -}; -#elif (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64) -struct kernel_stat { - unsigned st_dev; - int st_pad1[3]; - unsigned st_ino; - unsigned st_mode; - unsigned st_nlink; - unsigned st_uid; - unsigned st_gid; - unsigned st_rdev; - int st_pad2[2]; - long st_size; - int st_pad3; - long st_atime_; - long st_atime_nsec_; - long st_mtime_; - long st_mtime_nsec_; - long st_ctime_; - long st_ctime_nsec_; - int st_blksize; - int st_blocks; - int st_pad4[14]; -}; -#elif defined(__aarch64__) -struct kernel_stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned int st_uid; - unsigned int st_gid; - unsigned long st_rdev; - unsigned long __pad1; - long st_size; - int st_blksize; - int __pad2; - long st_blocks; - long st_atime_; - unsigned long st_atime_nsec_; - long st_mtime_; - unsigned long st_mtime_nsec_; - long st_ctime_; - unsigned long st_ctime_nsec_; - unsigned int __unused4; - unsigned int __unused5; -}; -#endif - -/* include/asm-{arm,aarch64,i386,mips,x86_64,ppc}/statfs.h */ -#ifdef __mips__ -#if _MIPS_SIM != _MIPS_SIM_ABI64 -struct kernel_statfs64 { - unsigned long f_type; - unsigned long f_bsize; - unsigned long f_frsize; - unsigned long __pad; - unsigned long long f_blocks; - unsigned long long f_bfree; - unsigned long long f_files; - unsigned long long f_ffree; - unsigned long long f_bavail; - struct { int val[2]; } f_fsid; - unsigned long f_namelen; - unsigned long f_spare[6]; -}; -#endif -#elif !defined(__x86_64__) -struct kernel_statfs64 { - unsigned long f_type; - unsigned long f_bsize; - unsigned long long f_blocks; - unsigned long long f_bfree; - unsigned long long f_bavail; - unsigned long long f_files; - unsigned long long f_ffree; - struct { int val[2]; } f_fsid; - unsigned long f_namelen; - unsigned long f_frsize; - unsigned long f_spare[5]; -}; -#endif - -/* include/asm-{arm,i386,mips,x86_64,ppc,generic}/statfs.h */ -#ifdef __mips__ -struct kernel_statfs { - long f_type; - long f_bsize; - long f_frsize; - long f_blocks; - long f_bfree; - long f_files; - long f_ffree; - long f_bavail; - struct { int val[2]; } f_fsid; - long f_namelen; - long f_spare[6]; -}; -#elif defined(__x86_64__) -struct kernel_statfs { - /* x86_64 actually defines all these fields as signed, whereas all other */ - /* platforms define them as unsigned. Leaving them at unsigned should not */ - /* cause any problems. Make sure these are 64-bit even on x32. */ - uint64_t f_type; - uint64_t f_bsize; - uint64_t f_blocks; - uint64_t f_bfree; - uint64_t f_bavail; - uint64_t f_files; - uint64_t f_ffree; - struct { int val[2]; } f_fsid; - uint64_t f_namelen; - uint64_t f_frsize; - uint64_t f_spare[5]; -}; -#else -struct kernel_statfs { - unsigned long f_type; - unsigned long f_bsize; - unsigned long f_blocks; - unsigned long f_bfree; - unsigned long f_bavail; - unsigned long f_files; - unsigned long f_ffree; - struct { int val[2]; } f_fsid; - unsigned long f_namelen; - unsigned long f_frsize; - unsigned long f_spare[5]; -}; -#endif - - -/* Definitions missing from the standard header files */ -#ifndef O_DIRECTORY -#if defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || defined(__aarch64__) -#define O_DIRECTORY 0040000 -#else -#define O_DIRECTORY 0200000 -#endif -#endif -#ifndef NT_PRXFPREG -#define NT_PRXFPREG 0x46e62b7f -#endif -#ifndef PTRACE_GETFPXREGS -#define PTRACE_GETFPXREGS ((enum __ptrace_request)18) -#endif -#ifndef PR_GET_DUMPABLE -#define PR_GET_DUMPABLE 3 -#endif -#ifndef PR_SET_DUMPABLE -#define PR_SET_DUMPABLE 4 -#endif -#ifndef PR_GET_SECCOMP -#define PR_GET_SECCOMP 21 -#endif -#ifndef PR_SET_SECCOMP -#define PR_SET_SECCOMP 22 -#endif -#ifndef AT_FDCWD -#define AT_FDCWD (-100) -#endif -#ifndef AT_SYMLINK_NOFOLLOW -#define AT_SYMLINK_NOFOLLOW 0x100 -#endif -#ifndef AT_REMOVEDIR -#define AT_REMOVEDIR 0x200 -#endif -#ifndef MREMAP_FIXED -#define MREMAP_FIXED 2 -#endif -#ifndef SA_RESTORER -#define SA_RESTORER 0x04000000 -#endif -#ifndef CPUCLOCK_PROF -#define CPUCLOCK_PROF 0 -#endif -#ifndef CPUCLOCK_VIRT -#define CPUCLOCK_VIRT 1 -#endif -#ifndef CPUCLOCK_SCHED -#define CPUCLOCK_SCHED 2 -#endif -#ifndef CPUCLOCK_PERTHREAD_MASK -#define CPUCLOCK_PERTHREAD_MASK 4 -#endif -#ifndef MAKE_PROCESS_CPUCLOCK -#define MAKE_PROCESS_CPUCLOCK(pid, clock) \ - ((~(int)(pid) << 3) | (int)(clock)) -#endif -#ifndef MAKE_THREAD_CPUCLOCK -#define MAKE_THREAD_CPUCLOCK(tid, clock) \ - ((~(int)(tid) << 3) | (int)((clock) | CPUCLOCK_PERTHREAD_MASK)) -#endif - -#ifndef FUTEX_WAIT -#define FUTEX_WAIT 0 -#endif -#ifndef FUTEX_WAKE -#define FUTEX_WAKE 1 -#endif -#ifndef FUTEX_FD -#define FUTEX_FD 2 -#endif -#ifndef FUTEX_REQUEUE -#define FUTEX_REQUEUE 3 -#endif -#ifndef FUTEX_CMP_REQUEUE -#define FUTEX_CMP_REQUEUE 4 -#endif -#ifndef FUTEX_WAKE_OP -#define FUTEX_WAKE_OP 5 -#endif -#ifndef FUTEX_LOCK_PI -#define FUTEX_LOCK_PI 6 -#endif -#ifndef FUTEX_UNLOCK_PI -#define FUTEX_UNLOCK_PI 7 -#endif -#ifndef FUTEX_TRYLOCK_PI -#define FUTEX_TRYLOCK_PI 8 -#endif -#ifndef FUTEX_PRIVATE_FLAG -#define FUTEX_PRIVATE_FLAG 128 -#endif -#ifndef FUTEX_CMD_MASK -#define FUTEX_CMD_MASK ~FUTEX_PRIVATE_FLAG -#endif -#ifndef FUTEX_WAIT_PRIVATE -#define FUTEX_WAIT_PRIVATE (FUTEX_WAIT | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_WAKE_PRIVATE -#define FUTEX_WAKE_PRIVATE (FUTEX_WAKE | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_REQUEUE_PRIVATE -#define FUTEX_REQUEUE_PRIVATE (FUTEX_REQUEUE | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_CMP_REQUEUE_PRIVATE -#define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_WAKE_OP_PRIVATE -#define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_LOCK_PI_PRIVATE -#define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_UNLOCK_PI_PRIVATE -#define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG) -#endif -#ifndef FUTEX_TRYLOCK_PI_PRIVATE -#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG) -#endif - - -#if defined(__x86_64__) -#ifndef ARCH_SET_GS -#define ARCH_SET_GS 0x1001 -#endif -#ifndef ARCH_GET_GS -#define ARCH_GET_GS 0x1004 -#endif -#endif - -#if defined(__i386__) -#ifndef __NR_quotactl -#define __NR_quotactl 131 -#endif -#ifndef __NR_setresuid -#define __NR_setresuid 164 -#define __NR_getresuid 165 -#define __NR_setresgid 170 -#define __NR_getresgid 171 -#endif -#ifndef __NR_rt_sigaction -#define __NR_rt_sigreturn 173 -#define __NR_rt_sigaction 174 -#define __NR_rt_sigprocmask 175 -#define __NR_rt_sigpending 176 -#define __NR_rt_sigsuspend 179 -#endif -#ifndef __NR_pread64 -#define __NR_pread64 180 -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 181 -#endif -#ifndef __NR_ugetrlimit -#define __NR_ugetrlimit 191 -#endif -#ifndef __NR_stat64 -#define __NR_stat64 195 -#endif -#ifndef __NR_fstat64 -#define __NR_fstat64 197 -#endif -#ifndef __NR_setresuid32 -#define __NR_setresuid32 208 -#define __NR_getresuid32 209 -#define __NR_setresgid32 210 -#define __NR_getresgid32 211 -#endif -#ifndef __NR_setfsuid32 -#define __NR_setfsuid32 215 -#define __NR_setfsgid32 216 -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 220 -#endif -#ifndef __NR_gettid -#define __NR_gettid 224 -#endif -#ifndef __NR_readahead -#define __NR_readahead 225 -#endif -#ifndef __NR_setxattr -#define __NR_setxattr 226 -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr 227 -#endif -#ifndef __NR_getxattr -#define __NR_getxattr 229 -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr 230 -#endif -#ifndef __NR_listxattr -#define __NR_listxattr 232 -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr 233 -#endif -#ifndef __NR_tkill -#define __NR_tkill 238 -#endif -#ifndef __NR_futex -#define __NR_futex 240 -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity 241 -#define __NR_sched_getaffinity 242 -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address 258 -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime 265 -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres 266 -#endif -#ifndef __NR_statfs64 -#define __NR_statfs64 268 -#endif -#ifndef __NR_fstatfs64 -#define __NR_fstatfs64 269 -#endif -#ifndef __NR_fadvise64_64 -#define __NR_fadvise64_64 272 -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set 289 -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get 290 -#endif -#ifndef __NR_openat -#define __NR_openat 295 -#endif -#ifndef __NR_fstatat64 -#define __NR_fstatat64 300 -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat 301 -#endif -#ifndef __NR_move_pages -#define __NR_move_pages 317 -#endif -#ifndef __NR_getcpu -#define __NR_getcpu 318 -#endif -#ifndef __NR_fallocate -#define __NR_fallocate 324 -#endif -/* End of i386 definitions */ -#elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) -#ifndef __NR_setresuid -#define __NR_setresuid (__NR_SYSCALL_BASE + 164) -#define __NR_getresuid (__NR_SYSCALL_BASE + 165) -#define __NR_setresgid (__NR_SYSCALL_BASE + 170) -#define __NR_getresgid (__NR_SYSCALL_BASE + 171) -#endif -#ifndef __NR_rt_sigaction -#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173) -#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174) -#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175) -#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176) -#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179) -#endif -#ifndef __NR_pread64 -#define __NR_pread64 (__NR_SYSCALL_BASE + 180) -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181) -#endif -#ifndef __NR_ugetrlimit -#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191) -#endif -#ifndef __NR_stat64 -#define __NR_stat64 (__NR_SYSCALL_BASE + 195) -#endif -#ifndef __NR_fstat64 -#define __NR_fstat64 (__NR_SYSCALL_BASE + 197) -#endif -#ifndef __NR_setresuid32 -#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208) -#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209) -#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210) -#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211) -#endif -#ifndef __NR_setfsuid32 -#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215) -#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216) -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 (__NR_SYSCALL_BASE + 217) -#endif -#ifndef __NR_gettid -#define __NR_gettid (__NR_SYSCALL_BASE + 224) -#endif -#ifndef __NR_readahead -#define __NR_readahead (__NR_SYSCALL_BASE + 225) -#endif -#ifndef __NR_setxattr -#define __NR_setxattr (__NR_SYSCALL_BASE + 226) -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227) -#endif -#ifndef __NR_getxattr -#define __NR_getxattr (__NR_SYSCALL_BASE + 229) -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230) -#endif -#ifndef __NR_listxattr -#define __NR_listxattr (__NR_SYSCALL_BASE + 232) -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr (__NR_SYSCALL_BASE + 233) -#endif -#ifndef __NR_tkill -#define __NR_tkill (__NR_SYSCALL_BASE + 238) -#endif -#ifndef __NR_futex -#define __NR_futex (__NR_SYSCALL_BASE + 240) -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241) -#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242) -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256) -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263) -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres (__NR_SYSCALL_BASE + 264) -#endif -#ifndef __NR_statfs64 -#define __NR_statfs64 (__NR_SYSCALL_BASE + 266) -#endif -#ifndef __NR_fstatfs64 -#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267) -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314) -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315) -#endif -#ifndef __NR_move_pages -#define __NR_move_pages (__NR_SYSCALL_BASE + 344) -#endif -#ifndef __NR_getcpu -#define __NR_getcpu (__NR_SYSCALL_BASE + 345) -#endif -/* End of ARM 3/EABI definitions */ -#elif defined(__aarch64__) -#ifndef __NR_setxattr -#define __NR_setxattr 5 -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr 6 -#endif -#ifndef __NR_getxattr -#define __NR_getxattr 8 -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr 9 -#endif -#ifndef __NR_listxattr -#define __NR_listxattr 11 -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr 12 -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set 30 -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get 31 -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat 35 -#endif -#ifndef __NR_fallocate -#define __NR_fallocate 47 -#endif -#ifndef __NR_openat -#define __NR_openat 56 -#endif -#ifndef __NR_quotactl -#define __NR_quotactl 60 -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 61 -#endif -#ifndef __NR_getdents -#define __NR_getdents __NR_getdents64 -#endif -#ifndef __NR_pread64 -#define __NR_pread64 67 -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 68 -#endif -#ifndef __NR_ppoll -#define __NR_ppoll 73 -#endif -#ifndef __NR_readlinkat -#define __NR_readlinkat 78 -#endif -#ifndef __NR_newfstatat -#define __NR_newfstatat 79 -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address 96 -#endif -#ifndef __NR_futex -#define __NR_futex 98 -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime 113 -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres 114 -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity 122 -#define __NR_sched_getaffinity 123 -#endif -#ifndef __NR_tkill -#define __NR_tkill 130 -#endif -#ifndef __NR_setresuid -#define __NR_setresuid 147 -#define __NR_getresuid 148 -#define __NR_setresgid 149 -#define __NR_getresgid 150 -#endif -#ifndef __NR_gettid -#define __NR_gettid 178 -#endif -#ifndef __NR_readahead -#define __NR_readahead 213 -#endif -#ifndef __NR_fadvise64 -#define __NR_fadvise64 223 -#endif -#ifndef __NR_move_pages -#define __NR_move_pages 239 -#endif -/* End of aarch64 definitions */ -#elif defined(__x86_64__) -#ifndef __NR_pread64 -#define __NR_pread64 17 -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 18 -#endif -#ifndef __NR_setresuid -#define __NR_setresuid 117 -#define __NR_getresuid 118 -#define __NR_setresgid 119 -#define __NR_getresgid 120 -#endif -#ifndef __NR_quotactl -#define __NR_quotactl 179 -#endif -#ifndef __NR_gettid -#define __NR_gettid 186 -#endif -#ifndef __NR_readahead -#define __NR_readahead 187 -#endif -#ifndef __NR_setxattr -#define __NR_setxattr 188 -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr 189 -#endif -#ifndef __NR_getxattr -#define __NR_getxattr 191 -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr 192 -#endif -#ifndef __NR_listxattr -#define __NR_listxattr 194 -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr 195 -#endif -#ifndef __NR_tkill -#define __NR_tkill 200 -#endif -#ifndef __NR_futex -#define __NR_futex 202 -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity 203 -#define __NR_sched_getaffinity 204 -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 217 -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address 218 -#endif -#ifndef __NR_fadvise64 -#define __NR_fadvise64 221 -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime 228 -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres 229 -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set 251 -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get 252 -#endif -#ifndef __NR_openat -#define __NR_openat 257 -#endif -#ifndef __NR_newfstatat -#define __NR_newfstatat 262 -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat 263 -#endif -#ifndef __NR_move_pages -#define __NR_move_pages 279 -#endif -#ifndef __NR_fallocate -#define __NR_fallocate 285 -#endif -/* End of x86-64 definitions */ -#elif defined(__mips__) -#if _MIPS_SIM == _MIPS_SIM_ABI32 -#ifndef __NR_setresuid -#define __NR_setresuid (__NR_Linux + 185) -#define __NR_getresuid (__NR_Linux + 186) -#define __NR_setresgid (__NR_Linux + 190) -#define __NR_getresgid (__NR_Linux + 191) -#endif -#ifndef __NR_rt_sigaction -#define __NR_rt_sigreturn (__NR_Linux + 193) -#define __NR_rt_sigaction (__NR_Linux + 194) -#define __NR_rt_sigprocmask (__NR_Linux + 195) -#define __NR_rt_sigpending (__NR_Linux + 196) -#define __NR_rt_sigsuspend (__NR_Linux + 199) -#endif -#ifndef __NR_pread64 -#define __NR_pread64 (__NR_Linux + 200) -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 (__NR_Linux + 201) -#endif -#ifndef __NR_stat64 -#define __NR_stat64 (__NR_Linux + 213) -#endif -#ifndef __NR_fstat64 -#define __NR_fstat64 (__NR_Linux + 215) -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 (__NR_Linux + 219) -#endif -#ifndef __NR_gettid -#define __NR_gettid (__NR_Linux + 222) -#endif -#ifndef __NR_readahead -#define __NR_readahead (__NR_Linux + 223) -#endif -#ifndef __NR_setxattr -#define __NR_setxattr (__NR_Linux + 224) -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr (__NR_Linux + 225) -#endif -#ifndef __NR_getxattr -#define __NR_getxattr (__NR_Linux + 227) -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr (__NR_Linux + 228) -#endif -#ifndef __NR_listxattr -#define __NR_listxattr (__NR_Linux + 230) -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr (__NR_Linux + 231) -#endif -#ifndef __NR_tkill -#define __NR_tkill (__NR_Linux + 236) -#endif -#ifndef __NR_futex -#define __NR_futex (__NR_Linux + 238) -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity (__NR_Linux + 239) -#define __NR_sched_getaffinity (__NR_Linux + 240) -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address (__NR_Linux + 252) -#endif -#ifndef __NR_statfs64 -#define __NR_statfs64 (__NR_Linux + 255) -#endif -#ifndef __NR_fstatfs64 -#define __NR_fstatfs64 (__NR_Linux + 256) -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime (__NR_Linux + 263) -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres (__NR_Linux + 264) -#endif -#ifndef __NR_openat -#define __NR_openat (__NR_Linux + 288) -#endif -#ifndef __NR_fstatat -#define __NR_fstatat (__NR_Linux + 293) -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat (__NR_Linux + 294) -#endif -#ifndef __NR_move_pages -#define __NR_move_pages (__NR_Linux + 308) -#endif -#ifndef __NR_getcpu -#define __NR_getcpu (__NR_Linux + 312) -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set (__NR_Linux + 314) -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get (__NR_Linux + 315) -#endif -/* End of MIPS (old 32bit API) definitions */ -#elif _MIPS_SIM == _MIPS_SIM_ABI64 -#ifndef __NR_pread64 -#define __NR_pread64 (__NR_Linux + 16) -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 (__NR_Linux + 17) -#endif -#ifndef __NR_setresuid -#define __NR_setresuid (__NR_Linux + 115) -#define __NR_getresuid (__NR_Linux + 116) -#define __NR_setresgid (__NR_Linux + 117) -#define __NR_getresgid (__NR_Linux + 118) -#endif -#ifndef __NR_gettid -#define __NR_gettid (__NR_Linux + 178) -#endif -#ifndef __NR_readahead -#define __NR_readahead (__NR_Linux + 179) -#endif -#ifndef __NR_setxattr -#define __NR_setxattr (__NR_Linux + 180) -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr (__NR_Linux + 181) -#endif -#ifndef __NR_getxattr -#define __NR_getxattr (__NR_Linux + 183) -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr (__NR_Linux + 184) -#endif -#ifndef __NR_listxattr -#define __NR_listxattr (__NR_Linux + 186) -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr (__NR_Linux + 187) -#endif -#ifndef __NR_tkill -#define __NR_tkill (__NR_Linux + 192) -#endif -#ifndef __NR_futex -#define __NR_futex (__NR_Linux + 194) -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity (__NR_Linux + 195) -#define __NR_sched_getaffinity (__NR_Linux + 196) -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address (__NR_Linux + 212) -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime (__NR_Linux + 222) -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres (__NR_Linux + 223) -#endif -#ifndef __NR_openat -#define __NR_openat (__NR_Linux + 247) -#endif -#ifndef __NR_fstatat -#define __NR_fstatat (__NR_Linux + 252) -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat (__NR_Linux + 253) -#endif -#ifndef __NR_move_pages -#define __NR_move_pages (__NR_Linux + 267) -#endif -#ifndef __NR_getcpu -#define __NR_getcpu (__NR_Linux + 271) -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set (__NR_Linux + 273) -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get (__NR_Linux + 274) -#endif -/* End of MIPS (64bit API) definitions */ -#else -#ifndef __NR_setresuid -#define __NR_setresuid (__NR_Linux + 115) -#define __NR_getresuid (__NR_Linux + 116) -#define __NR_setresgid (__NR_Linux + 117) -#define __NR_getresgid (__NR_Linux + 118) -#endif -#ifndef __NR_gettid -#define __NR_gettid (__NR_Linux + 178) -#endif -#ifndef __NR_readahead -#define __NR_readahead (__NR_Linux + 179) -#endif -#ifndef __NR_setxattr -#define __NR_setxattr (__NR_Linux + 180) -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr (__NR_Linux + 181) -#endif -#ifndef __NR_getxattr -#define __NR_getxattr (__NR_Linux + 183) -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr (__NR_Linux + 184) -#endif -#ifndef __NR_listxattr -#define __NR_listxattr (__NR_Linux + 186) -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr (__NR_Linux + 187) -#endif -#ifndef __NR_tkill -#define __NR_tkill (__NR_Linux + 192) -#endif -#ifndef __NR_futex -#define __NR_futex (__NR_Linux + 194) -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity (__NR_Linux + 195) -#define __NR_sched_getaffinity (__NR_Linux + 196) -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address (__NR_Linux + 213) -#endif -#ifndef __NR_statfs64 -#define __NR_statfs64 (__NR_Linux + 217) -#endif -#ifndef __NR_fstatfs64 -#define __NR_fstatfs64 (__NR_Linux + 218) -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime (__NR_Linux + 226) -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres (__NR_Linux + 227) -#endif -#ifndef __NR_openat -#define __NR_openat (__NR_Linux + 251) -#endif -#ifndef __NR_fstatat -#define __NR_fstatat (__NR_Linux + 256) -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat (__NR_Linux + 257) -#endif -#ifndef __NR_move_pages -#define __NR_move_pages (__NR_Linux + 271) -#endif -#ifndef __NR_getcpu -#define __NR_getcpu (__NR_Linux + 275) -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set (__NR_Linux + 277) -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get (__NR_Linux + 278) -#endif -/* End of MIPS (new 32bit API) definitions */ -#endif -/* End of MIPS definitions */ -#elif defined(__PPC__) -#ifndef __NR_setfsuid -#define __NR_setfsuid 138 -#define __NR_setfsgid 139 -#endif -#ifndef __NR_setresuid -#define __NR_setresuid 164 -#define __NR_getresuid 165 -#define __NR_setresgid 169 -#define __NR_getresgid 170 -#endif -#ifndef __NR_rt_sigaction -#define __NR_rt_sigreturn 172 -#define __NR_rt_sigaction 173 -#define __NR_rt_sigprocmask 174 -#define __NR_rt_sigpending 175 -#define __NR_rt_sigsuspend 178 -#endif -#ifndef __NR_pread64 -#define __NR_pread64 179 -#endif -#ifndef __NR_pwrite64 -#define __NR_pwrite64 180 -#endif -#ifndef __NR_ugetrlimit -#define __NR_ugetrlimit 190 -#endif -#ifndef __NR_readahead -#define __NR_readahead 191 -#endif -#ifndef __NR_stat64 -#define __NR_stat64 195 -#endif -#ifndef __NR_fstat64 -#define __NR_fstat64 197 -#endif -#ifndef __NR_getdents64 -#define __NR_getdents64 202 -#endif -#ifndef __NR_gettid -#define __NR_gettid 207 -#endif -#ifndef __NR_tkill -#define __NR_tkill 208 -#endif -#ifndef __NR_setxattr -#define __NR_setxattr 209 -#endif -#ifndef __NR_lsetxattr -#define __NR_lsetxattr 210 -#endif -#ifndef __NR_getxattr -#define __NR_getxattr 212 -#endif -#ifndef __NR_lgetxattr -#define __NR_lgetxattr 213 -#endif -#ifndef __NR_listxattr -#define __NR_listxattr 215 -#endif -#ifndef __NR_llistxattr -#define __NR_llistxattr 216 -#endif -#ifndef __NR_futex -#define __NR_futex 221 -#endif -#ifndef __NR_sched_setaffinity -#define __NR_sched_setaffinity 222 -#define __NR_sched_getaffinity 223 -#endif -#ifndef __NR_set_tid_address -#define __NR_set_tid_address 232 -#endif -#ifndef __NR_clock_gettime -#define __NR_clock_gettime 246 -#endif -#ifndef __NR_clock_getres -#define __NR_clock_getres 247 -#endif -#ifndef __NR_statfs64 -#define __NR_statfs64 252 -#endif -#ifndef __NR_fstatfs64 -#define __NR_fstatfs64 253 -#endif -#ifndef __NR_fadvise64_64 -#define __NR_fadvise64_64 254 -#endif -#ifndef __NR_ioprio_set -#define __NR_ioprio_set 273 -#endif -#ifndef __NR_ioprio_get -#define __NR_ioprio_get 274 -#endif -#ifndef __NR_openat -#define __NR_openat 286 -#endif -#ifndef __NR_fstatat64 -#define __NR_fstatat64 291 -#endif -#ifndef __NR_unlinkat -#define __NR_unlinkat 292 -#endif -#ifndef __NR_move_pages -#define __NR_move_pages 301 -#endif -#ifndef __NR_getcpu -#define __NR_getcpu 302 -#endif -/* End of powerpc defininitions */ -#endif - - -/* After forking, we must make sure to only call system calls. */ -#if defined(__BOUNDED_POINTERS__) - #error "Need to port invocations of syscalls for bounded ptrs" -#else - /* The core dumper and the thread lister get executed after threads - * have been suspended. As a consequence, we cannot call any functions - * that acquire locks. Unfortunately, libc wraps most system calls - * (e.g. in order to implement pthread_atfork, and to make calls - * cancellable), which means we cannot call these functions. Instead, - * we have to call syscall() directly. - */ - #undef LSS_ERRNO - #ifdef SYS_ERRNO - /* Allow the including file to override the location of errno. This can - * be useful when using clone() with the CLONE_VM option. - */ - #define LSS_ERRNO SYS_ERRNO - #else - #define LSS_ERRNO errno - #endif - - #undef LSS_INLINE - #ifdef SYS_INLINE - #define LSS_INLINE SYS_INLINE - #else - #define LSS_INLINE static inline - #endif - - /* Allow the including file to override the prefix used for all new - * system calls. By default, it will be set to "sys_". - */ - #undef LSS_NAME - #ifndef SYS_PREFIX - #define LSS_NAME(name) sys_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX < 0 - #define LSS_NAME(name) name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 0 - #define LSS_NAME(name) sys0_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 1 - #define LSS_NAME(name) sys1_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 2 - #define LSS_NAME(name) sys2_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 3 - #define LSS_NAME(name) sys3_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 4 - #define LSS_NAME(name) sys4_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 5 - #define LSS_NAME(name) sys5_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 6 - #define LSS_NAME(name) sys6_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 7 - #define LSS_NAME(name) sys7_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 8 - #define LSS_NAME(name) sys8_##name - #elif defined(SYS_PREFIX) && SYS_PREFIX == 9 - #define LSS_NAME(name) sys9_##name - #endif - - #undef LSS_RETURN - #if (defined(__i386__) || defined(__x86_64__) || defined(__ARM_ARCH_3__) \ - || defined(__ARM_EABI__) || defined(__aarch64__)) - /* Failing system calls return a negative result in the range of - * -1..-4095. These are "errno" values with the sign inverted. - */ - #define LSS_RETURN(type, res) \ - do { \ - if ((unsigned long)(res) >= (unsigned long)(-4095)) { \ - LSS_ERRNO = -(res); \ - res = -1; \ - } \ - return (type) (res); \ - } while (0) - #elif defined(__mips__) - /* On MIPS, failing system calls return -1, and set errno in a - * separate CPU register. - */ - #define LSS_RETURN(type, res, err) \ - do { \ - if (err) { \ - unsigned long __errnovalue = (res); \ - LSS_ERRNO = __errnovalue; \ - res = -1; \ - } \ - return (type) (res); \ - } while (0) - #elif defined(__PPC__) - /* On PPC, failing system calls return -1, and set errno in a - * separate CPU register. See linux/unistd.h. - */ - #define LSS_RETURN(type, res, err) \ - do { \ - if (err & 0x10000000 ) { \ - LSS_ERRNO = (res); \ - res = -1; \ - } \ - return (type) (res); \ - } while (0) - #endif - #if defined(__i386__) - /* In PIC mode (e.g. when building shared libraries), gcc for i386 - * reserves ebx. Unfortunately, most distribution ship with implementations - * of _syscallX() which clobber ebx. - * Also, most definitions of _syscallX() neglect to mark "memory" as being - * clobbered. This causes problems with compilers, that do a better job - * at optimizing across __asm__ calls. - * So, we just have to redefine all of the _syscallX() macros. - */ - #undef LSS_ENTRYPOINT - #ifdef SYS_SYSCALL_ENTRYPOINT - static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) { - void (**entrypoint)(void); - asm volatile(".bss\n" - ".align 8\n" - ".globl " SYS_SYSCALL_ENTRYPOINT "\n" - ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" - ".previous\n" - /* This logically does 'lea "SYS_SYSCALL_ENTRYPOINT", %0' */ - "call 0f\n" - "0:pop %0\n" - "add $_GLOBAL_OFFSET_TABLE_+[.-0b], %0\n" - "mov " SYS_SYSCALL_ENTRYPOINT "@GOT(%0), %0\n" - : "=r"(entrypoint)); - return entrypoint; - } - - #define LSS_ENTRYPOINT ".bss\n" \ - ".align 8\n" \ - ".globl " SYS_SYSCALL_ENTRYPOINT "\n" \ - ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" \ - ".previous\n" \ - /* Check the SYS_SYSCALL_ENTRYPOINT vector */ \ - "push %%eax\n" \ - "call 10000f\n" \ - "10000:pop %%eax\n" \ - "add $_GLOBAL_OFFSET_TABLE_+[.-10000b], %%eax\n" \ - "mov " SYS_SYSCALL_ENTRYPOINT \ - "@GOT(%%eax), %%eax\n" \ - "mov 0(%%eax), %%eax\n" \ - "test %%eax, %%eax\n" \ - "jz 10002f\n" \ - "push %%eax\n" \ - "call 10001f\n" \ - "10001:pop %%eax\n" \ - "add $(10003f-10001b), %%eax\n" \ - "xchg 4(%%esp), %%eax\n" \ - "ret\n" \ - "10002:pop %%eax\n" \ - "int $0x80\n" \ - "10003:\n" - #else - #define LSS_ENTRYPOINT "int $0x80\n" - #endif - #undef LSS_BODY - #define LSS_BODY(type,args...) \ - long __res; \ - __asm__ __volatile__("push %%ebx\n" \ - "movl %2,%%ebx\n" \ - LSS_ENTRYPOINT \ - "pop %%ebx" \ - args \ - : "esp", "memory"); \ - LSS_RETURN(type,__res) - #undef _syscall0 - #define _syscall0(type,name) \ - type LSS_NAME(name)(void) { \ - long __res; \ - __asm__ volatile(LSS_ENTRYPOINT \ - : "=a" (__res) \ - : "0" (__NR_##name) \ - : "esp", "memory"); \ - LSS_RETURN(type,__res); \ - } - #undef _syscall1 - #define _syscall1(type,name,type1,arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_BODY(type, \ - : "=a" (__res) \ - : "0" (__NR_##name), "ri" ((long)(arg1))); \ - } - #undef _syscall2 - #define _syscall2(type,name,type1,arg1,type2,arg2) \ - type LSS_NAME(name)(type1 arg1,type2 arg2) { \ - LSS_BODY(type, \ - : "=a" (__res) \ - : "0" (__NR_##name),"ri" ((long)(arg1)), "c" ((long)(arg2))); \ - } - #undef _syscall3 - #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ - type LSS_NAME(name)(type1 arg1,type2 arg2,type3 arg3) { \ - LSS_BODY(type, \ - : "=a" (__res) \ - : "0" (__NR_##name), "ri" ((long)(arg1)), "c" ((long)(arg2)), \ - "d" ((long)(arg3))); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_BODY(type, \ - : "=a" (__res) \ - : "0" (__NR_##name), "ri" ((long)(arg1)), "c" ((long)(arg2)), \ - "d" ((long)(arg3)),"S" ((long)(arg4))); \ - } - #undef _syscall5 - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - long __res; \ - __asm__ __volatile__("push %%ebx\n" \ - "movl %2,%%ebx\n" \ - "movl %1,%%eax\n" \ - LSS_ENTRYPOINT \ - "pop %%ebx" \ - : "=a" (__res) \ - : "i" (__NR_##name), "ri" ((long)(arg1)), \ - "c" ((long)(arg2)), "d" ((long)(arg3)), \ - "S" ((long)(arg4)), "D" ((long)(arg5)) \ - : "esp", "memory"); \ - LSS_RETURN(type,__res); \ - } - #undef _syscall6 - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - long __res; \ - struct { long __a1; long __a6; } __s = { (long)arg1, (long) arg6 }; \ - __asm__ __volatile__("push %%ebp\n" \ - "push %%ebx\n" \ - "movl 4(%2),%%ebp\n" \ - "movl 0(%2), %%ebx\n" \ - "movl %1,%%eax\n" \ - LSS_ENTRYPOINT \ - "pop %%ebx\n" \ - "pop %%ebp" \ - : "=a" (__res) \ - : "i" (__NR_##name), "0" ((long)(&__s)), \ - "c" ((long)(arg2)), "d" ((long)(arg3)), \ - "S" ((long)(arg4)), "D" ((long)(arg5)) \ - : "esp", "memory"); \ - LSS_RETURN(type,__res); \ - } - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - long __res; - __asm__ __volatile__(/* if (fn == NULL) - * return -EINVAL; - */ - "movl %3,%%ecx\n" - "jecxz 1f\n" - - /* if (child_stack == NULL) - * return -EINVAL; - */ - "movl %4,%%ecx\n" - "jecxz 1f\n" - - /* Set up alignment of the child stack: - * child_stack = (child_stack & ~0xF) - 20; - */ - "andl $-16,%%ecx\n" - "subl $20,%%ecx\n" - - /* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - "movl %6,%%eax\n" - "movl %%eax,4(%%ecx)\n" - "movl %3,%%eax\n" - "movl %%eax,(%%ecx)\n" - - /* %eax = syscall(%eax = __NR_clone, - * %ebx = flags, - * %ecx = child_stack, - * %edx = parent_tidptr, - * %esi = newtls, - * %edi = child_tidptr) - * Also, make sure that %ebx gets preserved as it is - * used in PIC mode. - */ - "movl %8,%%esi\n" - "movl %7,%%edx\n" - "movl %5,%%eax\n" - "movl %9,%%edi\n" - "pushl %%ebx\n" - "movl %%eax,%%ebx\n" - "movl %2,%%eax\n" - LSS_ENTRYPOINT - - /* In the parent: restore %ebx - * In the child: move "fn" into %ebx - */ - "popl %%ebx\n" - - /* if (%eax != 0) - * return %eax; - */ - "test %%eax,%%eax\n" - "jnz 1f\n" - - /* In the child, now. Terminate frame pointer chain. - */ - "movl $0,%%ebp\n" - - /* Call "fn". "arg" is already on the stack. - */ - "call *%%ebx\n" - - /* Call _exit(%ebx). Unfortunately older versions - * of gcc restrict the number of arguments that can - * be passed to asm(). So, we need to hard-code the - * system call number. - */ - "movl %%eax,%%ebx\n" - "movl $1,%%eax\n" - LSS_ENTRYPOINT - - /* Return to parent. - */ - "1:\n" - : "=a" (__res) - : "0"(-EINVAL), "i"(__NR_clone), - "m"(fn), "m"(child_stack), "m"(flags), "m"(arg), - "m"(parent_tidptr), "m"(newtls), "m"(child_tidptr) - : "esp", "memory", "ecx", "edx", "esi", "edi"); - LSS_RETURN(int, __res); - } - - #define __NR__fadvise64_64 __NR_fadvise64_64 - LSS_INLINE _syscall6(int, _fadvise64_64, int, fd, - unsigned, offset_lo, unsigned, offset_hi, - unsigned, len_lo, unsigned, len_hi, - int, advice) - - LSS_INLINE int LSS_NAME(fadvise64)(int fd, loff_t offset, - loff_t len, int advice) { - return LSS_NAME(_fadvise64_64)(fd, - (unsigned)offset, (unsigned)(offset >>32), - (unsigned)len, (unsigned)(len >> 32), - advice); - } - - #define __NR__fallocate __NR_fallocate - LSS_INLINE _syscall6(int, _fallocate, int, fd, - int, mode, - unsigned, offset_lo, unsigned, offset_hi, - unsigned, len_lo, unsigned, len_hi) - - LSS_INLINE int LSS_NAME(fallocate)(int fd, int mode, - loff_t offset, loff_t len) { - union { loff_t off; unsigned w[2]; } o = { offset }, l = { len }; - return LSS_NAME(_fallocate)(fd, mode, o.w[0], o.w[1], l.w[0], l.w[1]); - } - - LSS_INLINE _syscall1(int, set_thread_area, void *, u) - LSS_INLINE _syscall1(int, get_thread_area, void *, u) - - LSS_INLINE void (*LSS_NAME(restore_rt)(void))(void) { - /* On i386, the kernel does not know how to return from a signal - * handler. Instead, it relies on user space to provide a - * restorer function that calls the {rt_,}sigreturn() system call. - * Unfortunately, we cannot just reference the glibc version of this - * function, as glibc goes out of its way to make it inaccessible. - */ - void (*res)(void); - __asm__ __volatile__("call 2f\n" - "0:.align 16\n" - "1:movl %1,%%eax\n" - LSS_ENTRYPOINT - "2:popl %0\n" - "addl $(1b-0b),%0\n" - : "=a" (res) - : "i" (__NR_rt_sigreturn)); - return res; - } - LSS_INLINE void (*LSS_NAME(restore)(void))(void) { - /* On i386, the kernel does not know how to return from a signal - * handler. Instead, it relies on user space to provide a - * restorer function that calls the {rt_,}sigreturn() system call. - * Unfortunately, we cannot just reference the glibc version of this - * function, as glibc goes out of its way to make it inaccessible. - */ - void (*res)(void); - __asm__ __volatile__("call 2f\n" - "0:.align 16\n" - "1:pop %%eax\n" - "movl %1,%%eax\n" - LSS_ENTRYPOINT - "2:popl %0\n" - "addl $(1b-0b),%0\n" - : "=a" (res) - : "i" (__NR_sigreturn)); - return res; - } - #elif defined(__x86_64__) - /* There are no known problems with any of the _syscallX() macros - * currently shipping for x86_64, but we still need to be able to define - * our own version so that we can override the location of the errno - * location (e.g. when using the clone() system call with the CLONE_VM - * option). - */ - #undef LSS_ENTRYPOINT - #ifdef SYS_SYSCALL_ENTRYPOINT - static inline void (**LSS_NAME(get_syscall_entrypoint)(void))(void) { - void (**entrypoint)(void); - asm volatile(".bss\n" - ".align 8\n" - ".globl " SYS_SYSCALL_ENTRYPOINT "\n" - ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" - ".previous\n" - "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %0\n" - : "=r"(entrypoint)); - return entrypoint; - } - - #define LSS_ENTRYPOINT \ - ".bss\n" \ - ".align 8\n" \ - ".globl " SYS_SYSCALL_ENTRYPOINT "\n" \ - ".common " SYS_SYSCALL_ENTRYPOINT ",8,8\n" \ - ".previous\n" \ - "mov " SYS_SYSCALL_ENTRYPOINT "@GOTPCREL(%%rip), %%rcx\n" \ - "mov 0(%%rcx), %%rcx\n" \ - "test %%rcx, %%rcx\n" \ - "jz 10001f\n" \ - "call *%%rcx\n" \ - "jmp 10002f\n" \ - "10001:syscall\n" \ - "10002:\n" - - #else - #define LSS_ENTRYPOINT "syscall\n" - #endif - - /* The x32 ABI has 32 bit longs, but the syscall interface is 64 bit. - * We need to explicitly cast to an unsigned 64 bit type to avoid implicit - * sign extension. We can't cast pointers directly because those are - * 32 bits, and gcc will dump ugly warnings about casting from a pointer - * to an integer of a different size. - */ - #undef LSS_SYSCALL_ARG - #define LSS_SYSCALL_ARG(a) ((uint64_t)(uintptr_t)(a)) - #undef _LSS_RETURN - #define _LSS_RETURN(type, res, cast) \ - do { \ - if ((uint64_t)(res) >= (uint64_t)(-4095)) { \ - LSS_ERRNO = -(res); \ - res = -1; \ - } \ - return (type)(cast)(res); \ - } while (0) - #undef LSS_RETURN - #define LSS_RETURN(type, res) _LSS_RETURN(type, res, uintptr_t) - - #undef _LSS_BODY - #define _LSS_BODY(nr, type, name, cast, ...) \ - long long __res; \ - __asm__ __volatile__(LSS_BODY_ASM##nr LSS_ENTRYPOINT \ - : "=a" (__res) \ - : "0" (__NR_##name) LSS_BODY_ARG##nr(__VA_ARGS__) \ - : LSS_BODY_CLOBBER##nr "r11", "rcx", "memory"); \ - _LSS_RETURN(type, __res, cast) - #undef LSS_BODY - #define LSS_BODY(nr, type, name, args...) \ - _LSS_BODY(nr, type, name, uintptr_t, ## args) - - #undef LSS_BODY_ASM0 - #undef LSS_BODY_ASM1 - #undef LSS_BODY_ASM2 - #undef LSS_BODY_ASM3 - #undef LSS_BODY_ASM4 - #undef LSS_BODY_ASM5 - #undef LSS_BODY_ASM6 - #define LSS_BODY_ASM0 - #define LSS_BODY_ASM1 LSS_BODY_ASM0 - #define LSS_BODY_ASM2 LSS_BODY_ASM1 - #define LSS_BODY_ASM3 LSS_BODY_ASM2 - #define LSS_BODY_ASM4 LSS_BODY_ASM3 "movq %5,%%r10;" - #define LSS_BODY_ASM5 LSS_BODY_ASM4 "movq %6,%%r8;" - #define LSS_BODY_ASM6 LSS_BODY_ASM5 "movq %7,%%r9;" - - #undef LSS_BODY_CLOBBER0 - #undef LSS_BODY_CLOBBER1 - #undef LSS_BODY_CLOBBER2 - #undef LSS_BODY_CLOBBER3 - #undef LSS_BODY_CLOBBER4 - #undef LSS_BODY_CLOBBER5 - #undef LSS_BODY_CLOBBER6 - #define LSS_BODY_CLOBBER0 - #define LSS_BODY_CLOBBER1 LSS_BODY_CLOBBER0 - #define LSS_BODY_CLOBBER2 LSS_BODY_CLOBBER1 - #define LSS_BODY_CLOBBER3 LSS_BODY_CLOBBER2 - #define LSS_BODY_CLOBBER4 LSS_BODY_CLOBBER3 "r10", - #define LSS_BODY_CLOBBER5 LSS_BODY_CLOBBER4 "r8", - #define LSS_BODY_CLOBBER6 LSS_BODY_CLOBBER5 "r9", - - #undef LSS_BODY_ARG0 - #undef LSS_BODY_ARG1 - #undef LSS_BODY_ARG2 - #undef LSS_BODY_ARG3 - #undef LSS_BODY_ARG4 - #undef LSS_BODY_ARG5 - #undef LSS_BODY_ARG6 - #define LSS_BODY_ARG0() - #define LSS_BODY_ARG1(arg1) \ - LSS_BODY_ARG0(), "D" (arg1) - #define LSS_BODY_ARG2(arg1, arg2) \ - LSS_BODY_ARG1(arg1), "S" (arg2) - #define LSS_BODY_ARG3(arg1, arg2, arg3) \ - LSS_BODY_ARG2(arg1, arg2), "d" (arg3) - #define LSS_BODY_ARG4(arg1, arg2, arg3, arg4) \ - LSS_BODY_ARG3(arg1, arg2, arg3), "r" (arg4) - #define LSS_BODY_ARG5(arg1, arg2, arg3, arg4, arg5) \ - LSS_BODY_ARG4(arg1, arg2, arg3, arg4), "r" (arg5) - #define LSS_BODY_ARG6(arg1, arg2, arg3, arg4, arg5, arg6) \ - LSS_BODY_ARG5(arg1, arg2, arg3, arg4, arg5), "r" (arg6) - - #undef _syscall0 - #define _syscall0(type,name) \ - type LSS_NAME(name)(void) { \ - LSS_BODY(0, type, name); \ - } - #undef _syscall1 - #define _syscall1(type,name,type1,arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_BODY(1, type, name, LSS_SYSCALL_ARG(arg1)); \ - } - #undef _syscall2 - #define _syscall2(type,name,type1,arg1,type2,arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - LSS_BODY(2, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2));\ - } - #undef _syscall3 - #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - LSS_BODY(3, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \ - LSS_SYSCALL_ARG(arg3)); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_BODY(4, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \ - LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4));\ - } - #undef _syscall5 - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_BODY(5, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \ - LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4), \ - LSS_SYSCALL_ARG(arg5)); \ - } - #undef _syscall6 - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_BODY(6, type, name, LSS_SYSCALL_ARG(arg1), LSS_SYSCALL_ARG(arg2), \ - LSS_SYSCALL_ARG(arg3), LSS_SYSCALL_ARG(arg4), \ - LSS_SYSCALL_ARG(arg5), LSS_SYSCALL_ARG(arg6));\ - } - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - long long __res; - { - __asm__ __volatile__(/* if (fn == NULL) - * return -EINVAL; - */ - "testq %4,%4\n" - "jz 1f\n" - - /* if (child_stack == NULL) - * return -EINVAL; - */ - "testq %5,%5\n" - "jz 1f\n" - - /* childstack -= 2*sizeof(void *); - */ - "subq $16,%5\n" - - /* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - "movq %7,8(%5)\n" - "movq %4,0(%5)\n" - - /* %rax = syscall(%rax = __NR_clone, - * %rdi = flags, - * %rsi = child_stack, - * %rdx = parent_tidptr, - * %r8 = new_tls, - * %r10 = child_tidptr) - */ - "movq %2,%%rax\n" - "movq %9,%%r8\n" - "movq %10,%%r10\n" - LSS_ENTRYPOINT - - /* if (%rax != 0) - * return; - */ - "testq %%rax,%%rax\n" - "jnz 1f\n" - - /* In the child. Terminate frame pointer chain. - */ - "xorq %%rbp,%%rbp\n" - - /* Call "fn(arg)". - */ - "popq %%rax\n" - "popq %%rdi\n" - "call *%%rax\n" - - /* Call _exit(%ebx). - */ - "movq %%rax,%%rdi\n" - "movq %3,%%rax\n" - LSS_ENTRYPOINT - - /* Return to parent. - */ - "1:\n" - : "=a" (__res) - : "0"(-EINVAL), "i"(__NR_clone), "i"(__NR_exit), - "r"(LSS_SYSCALL_ARG(fn)), - "S"(LSS_SYSCALL_ARG(child_stack)), - "D"(LSS_SYSCALL_ARG(flags)), - "r"(LSS_SYSCALL_ARG(arg)), - "d"(LSS_SYSCALL_ARG(parent_tidptr)), - "r"(LSS_SYSCALL_ARG(newtls)), - "r"(LSS_SYSCALL_ARG(child_tidptr)) - : "rsp", "memory", "r8", "r10", "r11", "rcx"); - } - LSS_RETURN(int, __res); - } - LSS_INLINE _syscall2(int, arch_prctl, int, c, void *, a) - - /* Need to make sure loff_t isn't truncated to 32-bits under x32. */ - LSS_INLINE int LSS_NAME(fadvise64)(int fd, loff_t offset, loff_t len, - int advice) { - LSS_BODY(4, int, fadvise64, LSS_SYSCALL_ARG(fd), (uint64_t)(offset), - (uint64_t)(len), LSS_SYSCALL_ARG(advice)); - } - - LSS_INLINE void (*LSS_NAME(restore_rt)(void))(void) { - /* On x86-64, the kernel does not know how to return from - * a signal handler. Instead, it relies on user space to provide a - * restorer function that calls the rt_sigreturn() system call. - * Unfortunately, we cannot just reference the glibc version of this - * function, as glibc goes out of its way to make it inaccessible. - */ - long long res; - __asm__ __volatile__("jmp 2f\n" - ".align 16\n" - "1:movq %1,%%rax\n" - LSS_ENTRYPOINT - "2:leaq 1b(%%rip),%0\n" - : "=r" (res) - : "i" (__NR_rt_sigreturn)); - return (void (*)(void))(uintptr_t)res; - } - #elif defined(__ARM_ARCH_3__) - /* Most definitions of _syscallX() neglect to mark "memory" as being - * clobbered. This causes problems with compilers, that do a better job - * at optimizing across __asm__ calls. - * So, we just have to redefine all of the _syscallX() macros. - */ - #undef LSS_REG - #define LSS_REG(r,a) register long __r##r __asm__("r"#r) = (long)a - #undef LSS_BODY - #define LSS_BODY(type,name,args...) \ - register long __res_r0 __asm__("r0"); \ - long __res; \ - __asm__ __volatile__ (__syscall(name) \ - : "=r"(__res_r0) : args : "lr", "memory"); \ - __res = __res_r0; \ - LSS_RETURN(type, __res) - #undef _syscall0 - #define _syscall0(type, name) \ - type LSS_NAME(name)(void) { \ - LSS_BODY(type, name); \ - } - #undef _syscall1 - #define _syscall1(type, name, type1, arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0)); \ - } - #undef _syscall2 - #define _syscall2(type, name, type1, arg1, type2, arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1)); \ - } - #undef _syscall3 - #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2)); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3)); \ - } - #undef _syscall5 - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4)); \ - } - #undef _syscall6 - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4), "r"(__r5)); \ - } - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - long __res; - { - register int __flags __asm__("r0") = flags; - register void *__stack __asm__("r1") = child_stack; - register void *__ptid __asm__("r2") = parent_tidptr; - register void *__tls __asm__("r3") = newtls; - register int *__ctid __asm__("r4") = child_tidptr; - __asm__ __volatile__(/* if (fn == NULL || child_stack == NULL) - * return -EINVAL; - */ - "cmp %2,#0\n" - "cmpne %3,#0\n" - "moveq %0,%1\n" - "beq 1f\n" - - /* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - "str %5,[%3,#-4]!\n" - "str %2,[%3,#-4]!\n" - - /* %r0 = syscall(%r0 = flags, - * %r1 = child_stack, - * %r2 = parent_tidptr, - * %r3 = newtls, - * %r4 = child_tidptr) - */ - __syscall(clone)"\n" - - /* if (%r0 != 0) - * return %r0; - */ - "movs %0,r0\n" - "bne 1f\n" - - /* In the child, now. Call "fn(arg)". - */ - "ldr r0,[sp, #4]\n" - "mov lr,pc\n" - "ldr pc,[sp]\n" - - /* Call _exit(%r0). - */ - __syscall(exit)"\n" - "1:\n" - : "=r" (__res) - : "i"(-EINVAL), - "r"(fn), "r"(__stack), "r"(__flags), "r"(arg), - "r"(__ptid), "r"(__tls), "r"(__ctid) - : "cc", "lr", "memory"); - } - LSS_RETURN(int, __res); - } - #elif defined(__ARM_EABI__) - /* Most definitions of _syscallX() neglect to mark "memory" as being - * clobbered. This causes problems with compilers, that do a better job - * at optimizing across __asm__ calls. - * So, we just have to redefine all fo the _syscallX() macros. - */ - #undef LSS_REG - #define LSS_REG(r,a) register long __r##r __asm__("r"#r) = (long)a - #undef LSS_BODY - #define LSS_BODY(type,name,args...) \ - register long __res_r0 __asm__("r0"); \ - long __res; \ - __asm__ __volatile__ ("push {r7}\n" \ - "mov r7, %1\n" \ - "swi 0x0\n" \ - "pop {r7}\n" \ - : "=r"(__res_r0) \ - : "i"(__NR_##name) , ## args \ - : "lr", "memory"); \ - __res = __res_r0; \ - LSS_RETURN(type, __res) - #undef _syscall0 - #define _syscall0(type, name) \ - type LSS_NAME(name)(void) { \ - LSS_BODY(type, name); \ - } - #undef _syscall1 - #define _syscall1(type, name, type1, arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0)); \ - } - #undef _syscall2 - #define _syscall2(type, name, type1, arg1, type2, arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1)); \ - } - #undef _syscall3 - #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2)); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3)); \ - } - #undef _syscall5 - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4)); \ - } - #undef _syscall6 - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4), "r"(__r5)); \ - } - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - long __res; - { - register int __flags __asm__("r0") = flags; - register void *__stack __asm__("r1") = child_stack; - register void *__ptid __asm__("r2") = parent_tidptr; - register void *__tls __asm__("r3") = newtls; - register int *__ctid __asm__("r4") = child_tidptr; - __asm__ __volatile__(/* if (fn == NULL || child_stack == NULL) - * return -EINVAL; - */ -#ifdef __thumb2__ - "push {r7}\n" -#endif - "cmp %2,#0\n" - "it ne\n" - "cmpne %3,#0\n" - "it eq\n" - "moveq %0,%1\n" - "beq 1f\n" - - /* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - "str %5,[%3,#-4]!\n" - "str %2,[%3,#-4]!\n" - - /* %r0 = syscall(%r0 = flags, - * %r1 = child_stack, - * %r2 = parent_tidptr, - * %r3 = newtls, - * %r4 = child_tidptr) - */ - "mov r7, %9\n" - "swi 0x0\n" - - /* if (%r0 != 0) - * return %r0; - */ - "movs %0,r0\n" - "bne 1f\n" - - /* In the child, now. Call "fn(arg)". - */ - "ldr r0,[sp, #4]\n" - - /* When compiling for Thumb-2 the "MOV LR,PC" here - * won't work because it loads PC+4 into LR, - * whereas the LDR is a 4-byte instruction. - * This results in the child thread always - * crashing with an "Illegal Instruction" when it - * returned into the middle of the LDR instruction - * The instruction sequence used instead was - * recommended by - * "https://wiki.edubuntu.org/ARM/Thumb2PortingHowto#Quick_Reference". - */ - #ifdef __thumb2__ - "ldr r7,[sp]\n" - "blx r7\n" - #else - "mov lr,pc\n" - "ldr pc,[sp]\n" - #endif - - /* Call _exit(%r0). - */ - "mov r7, %10\n" - "swi 0x0\n" - "1:\n" -#ifdef __thumb2__ - "pop {r7}" -#endif - : "=r" (__res) - : "i"(-EINVAL), - "r"(fn), "r"(__stack), "r"(__flags), "r"(arg), - "r"(__ptid), "r"(__tls), "r"(__ctid), - "i"(__NR_clone), "i"(__NR_exit) -#ifdef __thumb2__ - : "cc", "lr", "memory"); -#else - : "cc", "r7", "lr", "memory"); -#endif - } - LSS_RETURN(int, __res); - } - #elif defined(__aarch64__) - /* Most definitions of _syscallX() neglect to mark "memory" as being - * clobbered. This causes problems with compilers, that do a better job - * at optimizing across __asm__ calls. - * So, we just have to redefine all of the _syscallX() macros. - */ - #undef LSS_REG - #define LSS_REG(r,a) register int64_t __r##r __asm__("x"#r) = (int64_t)a - #undef LSS_BODY - #define LSS_BODY(type,name,args...) \ - register int64_t __res_x0 __asm__("x0"); \ - int64_t __res; \ - __asm__ __volatile__ ("mov x8, %1\n" \ - "svc 0x0\n" \ - : "=r"(__res_x0) \ - : "i"(__NR_##name) , ## args \ - : "x8", "memory"); \ - __res = __res_x0; \ - LSS_RETURN(type, __res) - #undef _syscall0 - #define _syscall0(type, name) \ - type LSS_NAME(name)(void) { \ - LSS_BODY(type, name); \ - } - #undef _syscall1 - #define _syscall1(type, name, type1, arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_REG(0, arg1); LSS_BODY(type, name, "r"(__r0)); \ - } - #undef _syscall2 - #define _syscall2(type, name, type1, arg1, type2, arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1)); \ - } - #undef _syscall3 - #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2)); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3)); \ - } - #undef _syscall5 - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4)); \ - } - #undef _syscall6 - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_REG(0, arg1); LSS_REG(1, arg2); LSS_REG(2, arg3); \ - LSS_REG(3, arg4); LSS_REG(4, arg5); LSS_REG(5, arg6); \ - LSS_BODY(type, name, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), \ - "r"(__r4), "r"(__r5)); \ - } - - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - int64_t __res; - { - register uint64_t __flags __asm__("x0") = flags; - register void *__stack __asm__("x1") = child_stack; - register void *__ptid __asm__("x2") = parent_tidptr; - register void *__tls __asm__("x3") = newtls; - register int *__ctid __asm__("x4") = child_tidptr; - __asm__ __volatile__(/* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - "stp %1, %4, [%2, #-16]!\n" - - /* %x0 = syscall(%x0 = flags, - * %x1 = child_stack, - * %x2 = parent_tidptr, - * %x3 = newtls, - * %x4 = child_tidptr) - */ - "mov x8, %8\n" - "svc 0x0\n" - - /* if (%r0 != 0) - * return %r0; - */ - "mov %0, x0\n" - "cbnz x0, 1f\n" - - /* In the child, now. Call "fn(arg)". - */ - "ldp x1, x0, [sp], #16\n" - "blr x1\n" - - /* Call _exit(%r0). - */ - "mov x8, %9\n" - "svc 0x0\n" - "1:\n" - : "=r" (__res) - : "r"(fn), "r"(__stack), "r"(__flags), "r"(arg), - "r"(__ptid), "r"(__tls), "r"(__ctid), - "i"(__NR_clone), "i"(__NR_exit) - : "cc", "x8", "memory"); - } - LSS_RETURN(int, __res); - } - #elif defined(__mips__) - #undef LSS_REG - #define LSS_REG(r,a) register unsigned long __r##r __asm__("$"#r) = \ - (unsigned long)(a) - #undef LSS_BODY - #undef LSS_SYSCALL_CLOBBERS - #if _MIPS_SIM == _MIPS_SIM_ABI32 - #define LSS_SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", \ - "$11", "$12", "$13", "$14", "$15", \ - "$24", "$25", "hi", "lo", "memory" - #else - #define LSS_SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", \ - "$13", "$14", "$15", "$24", "$25", \ - "hi", "lo", "memory" - #endif - #define LSS_BODY(type,name,r7,...) \ - register unsigned long __v0 __asm__("$2") = __NR_##name; \ - __asm__ __volatile__ ("syscall\n" \ - : "=r"(__v0), r7 (__r7) \ - : "0"(__v0), ##__VA_ARGS__ \ - : LSS_SYSCALL_CLOBBERS); \ - LSS_RETURN(type, __v0, __r7) - #undef _syscall0 - #define _syscall0(type, name) \ - type LSS_NAME(name)(void) { \ - register unsigned long __r7 __asm__("$7"); \ - LSS_BODY(type, name, "=r"); \ - } - #undef _syscall1 - #define _syscall1(type, name, type1, arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - register unsigned long __r7 __asm__("$7"); \ - LSS_REG(4, arg1); LSS_BODY(type, name, "=r", "r"(__r4)); \ - } - #undef _syscall2 - #define _syscall2(type, name, type1, arg1, type2, arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - register unsigned long __r7 __asm__("$7"); \ - LSS_REG(4, arg1); LSS_REG(5, arg2); \ - LSS_BODY(type, name, "=r", "r"(__r4), "r"(__r5)); \ - } - #undef _syscall3 - #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - register unsigned long __r7 __asm__("$7"); \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_BODY(type, name, "=r", "r"(__r4), "r"(__r5), "r"(__r6)); \ - } - #undef _syscall4 - #define _syscall4(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_REG(7, arg4); \ - LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6)); \ - } - #undef _syscall5 - #if _MIPS_SIM == _MIPS_SIM_ABI32 - /* The old 32bit MIPS system call API passes the fifth and sixth argument - * on the stack, whereas the new APIs use registers "r8" and "r9". - */ - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_REG(7, arg4); \ - register unsigned long __v0 __asm__("$2") = __NR_##name; \ - __asm__ __volatile__ (".set noreorder\n" \ - "subu $29, 32\n" \ - "sw %5, 16($29)\n" \ - "syscall\n" \ - "addiu $29, 32\n" \ - ".set reorder\n" \ - : "+r"(__v0), "+r" (__r7) \ - : "r"(__r4), "r"(__r5), \ - "r"(__r6), "r" ((unsigned long)arg5) \ - : "$8", "$9", "$10", "$11", "$12", \ - "$13", "$14", "$15", "$24", "$25", \ - "memory"); \ - LSS_RETURN(type, __v0, __r7); \ - } - #else - #define _syscall5(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_REG(7, arg4); LSS_REG(8, arg5); \ - LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6), \ - "r"(__r8)); \ - } - #endif - #undef _syscall6 - #if _MIPS_SIM == _MIPS_SIM_ABI32 - /* The old 32bit MIPS system call API passes the fifth and sixth argument - * on the stack, whereas the new APIs use registers "r8" and "r9". - */ - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_REG(7, arg4); \ - register unsigned long __v0 __asm__("$2") = __NR_##name; \ - __asm__ __volatile__ (".set noreorder\n" \ - "subu $29, 32\n" \ - "sw %5, 16($29)\n" \ - "sw %6, 20($29)\n" \ - "syscall\n" \ - "addiu $29, 32\n" \ - ".set reorder\n" \ - : "+r"(__v0), "+r" (__r7) \ - : "r"(__r4), "r"(__r5), \ - "r"(__r6), "r" ((unsigned long)arg5), \ - "r" ((unsigned long)arg6) \ - : "$8", "$9", "$10", "$11", "$12", \ - "$13", "$14", "$15", "$24", "$25", \ - "memory"); \ - LSS_RETURN(type, __v0, __r7); \ - } - #else - #define _syscall6(type,name,type1,arg1,type2,arg2,type3,arg3,type4,arg4, \ - type5,arg5,type6,arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5,type6 arg6) { \ - LSS_REG(4, arg1); LSS_REG(5, arg2); LSS_REG(6, arg3); \ - LSS_REG(7, arg4); LSS_REG(8, arg5); LSS_REG(9, arg6); \ - LSS_BODY(type, name, "+r", "r"(__r4), "r"(__r5), "r"(__r6), \ - "r"(__r8), "r"(__r9)); \ - } - #endif - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - register unsigned long __v0 __asm__("$2") = -EINVAL; - register unsigned long __r7 __asm__("$7") = (unsigned long)newtls; - { - register int __flags __asm__("$4") = flags; - register void *__stack __asm__("$5") = child_stack; - register void *__ptid __asm__("$6") = parent_tidptr; - register int *__ctid __asm__("$8") = child_tidptr; - __asm__ __volatile__( - #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32 - "subu $29,24\n" - #elif _MIPS_SIM == _MIPS_SIM_NABI32 - "sub $29,16\n" - #else - "dsubu $29,16\n" - #endif - - /* if (fn == NULL || child_stack == NULL) - * return -EINVAL; - */ - "beqz %4,1f\n" - "beqz %5,1f\n" - - /* Push "arg" and "fn" onto the stack that will be - * used by the child. - */ - #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32 - "subu %5,32\n" - "sw %4,0(%5)\n" - "sw %7,4(%5)\n" - #elif _MIPS_SIM == _MIPS_SIM_NABI32 - "sub %5,32\n" - "sw %4,0(%5)\n" - "sw %7,8(%5)\n" - #else - "dsubu %5,32\n" - "sd %4,0(%5)\n" - "sd %7,8(%5)\n" - #endif - - /* $7 = syscall($4 = flags, - * $5 = child_stack, - * $6 = parent_tidptr, - * $7 = newtls, - * $8 = child_tidptr) - */ - "li $2,%2\n" - "syscall\n" - - /* if ($7 != 0) - * return $2; - */ - "bnez $7,1f\n" - "bnez $2,1f\n" - - /* In the child, now. Call "fn(arg)". - */ - #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32 - "lw $25,0($29)\n" - "lw $4,4($29)\n" - #elif _MIPS_SIM == _MIPS_SIM_NABI32 - "lw $25,0($29)\n" - "lw $4,8($29)\n" - #else - "ld $25,0($29)\n" - "ld $4,8($29)\n" - #endif - "jalr $25\n" - - /* Call _exit($2) - */ - "move $4,$2\n" - "li $2,%3\n" - "syscall\n" - - "1:\n" - #if _MIPS_SIM == _MIPS_SIM_ABI32 && _MIPS_SZPTR == 32 - "addu $29, 24\n" - #elif _MIPS_SIM == _MIPS_SIM_NABI32 - "add $29, 16\n" - #else - "daddu $29,16\n" - #endif - : "+r" (__v0), "+r" (__r7) - : "i"(__NR_clone), "i"(__NR_exit), "r"(fn), - "r"(__stack), "r"(__flags), "r"(arg), - "r"(__ptid), "r"(__ctid) - : "$9", "$10", "$11", "$12", "$13", "$14", "$15", - "$24", "$25", "memory"); - } - LSS_RETURN(int, __v0, __r7); - } - #elif defined (__PPC__) - #undef LSS_LOADARGS_0 - #define LSS_LOADARGS_0(name, dummy...) \ - __sc_0 = __NR_##name - #undef LSS_LOADARGS_1 - #define LSS_LOADARGS_1(name, arg1) \ - LSS_LOADARGS_0(name); \ - __sc_3 = (unsigned long) (arg1) - #undef LSS_LOADARGS_2 - #define LSS_LOADARGS_2(name, arg1, arg2) \ - LSS_LOADARGS_1(name, arg1); \ - __sc_4 = (unsigned long) (arg2) - #undef LSS_LOADARGS_3 - #define LSS_LOADARGS_3(name, arg1, arg2, arg3) \ - LSS_LOADARGS_2(name, arg1, arg2); \ - __sc_5 = (unsigned long) (arg3) - #undef LSS_LOADARGS_4 - #define LSS_LOADARGS_4(name, arg1, arg2, arg3, arg4) \ - LSS_LOADARGS_3(name, arg1, arg2, arg3); \ - __sc_6 = (unsigned long) (arg4) - #undef LSS_LOADARGS_5 - #define LSS_LOADARGS_5(name, arg1, arg2, arg3, arg4, arg5) \ - LSS_LOADARGS_4(name, arg1, arg2, arg3, arg4); \ - __sc_7 = (unsigned long) (arg5) - #undef LSS_LOADARGS_6 - #define LSS_LOADARGS_6(name, arg1, arg2, arg3, arg4, arg5, arg6) \ - LSS_LOADARGS_5(name, arg1, arg2, arg3, arg4, arg5); \ - __sc_8 = (unsigned long) (arg6) - #undef LSS_ASMINPUT_0 - #define LSS_ASMINPUT_0 "0" (__sc_0) - #undef LSS_ASMINPUT_1 - #define LSS_ASMINPUT_1 LSS_ASMINPUT_0, "1" (__sc_3) - #undef LSS_ASMINPUT_2 - #define LSS_ASMINPUT_2 LSS_ASMINPUT_1, "2" (__sc_4) - #undef LSS_ASMINPUT_3 - #define LSS_ASMINPUT_3 LSS_ASMINPUT_2, "3" (__sc_5) - #undef LSS_ASMINPUT_4 - #define LSS_ASMINPUT_4 LSS_ASMINPUT_3, "4" (__sc_6) - #undef LSS_ASMINPUT_5 - #define LSS_ASMINPUT_5 LSS_ASMINPUT_4, "5" (__sc_7) - #undef LSS_ASMINPUT_6 - #define LSS_ASMINPUT_6 LSS_ASMINPUT_5, "6" (__sc_8) - #undef LSS_BODY - #define LSS_BODY(nr, type, name, args...) \ - long __sc_ret, __sc_err; \ - { \ - register unsigned long __sc_0 __asm__ ("r0"); \ - register unsigned long __sc_3 __asm__ ("r3"); \ - register unsigned long __sc_4 __asm__ ("r4"); \ - register unsigned long __sc_5 __asm__ ("r5"); \ - register unsigned long __sc_6 __asm__ ("r6"); \ - register unsigned long __sc_7 __asm__ ("r7"); \ - register unsigned long __sc_8 __asm__ ("r8"); \ - \ - LSS_LOADARGS_##nr(name, args); \ - __asm__ __volatile__ \ - ("sc\n\t" \ - "mfcr %0" \ - : "=&r" (__sc_0), \ - "=&r" (__sc_3), "=&r" (__sc_4), \ - "=&r" (__sc_5), "=&r" (__sc_6), \ - "=&r" (__sc_7), "=&r" (__sc_8) \ - : LSS_ASMINPUT_##nr \ - : "cr0", "ctr", "memory", \ - "r9", "r10", "r11", "r12"); \ - __sc_ret = __sc_3; \ - __sc_err = __sc_0; \ - } \ - LSS_RETURN(type, __sc_ret, __sc_err) - #undef _syscall0 - #define _syscall0(type, name) \ - type LSS_NAME(name)(void) { \ - LSS_BODY(0, type, name); \ - } - #undef _syscall1 - #define _syscall1(type, name, type1, arg1) \ - type LSS_NAME(name)(type1 arg1) { \ - LSS_BODY(1, type, name, arg1); \ - } - #undef _syscall2 - #define _syscall2(type, name, type1, arg1, type2, arg2) \ - type LSS_NAME(name)(type1 arg1, type2 arg2) { \ - LSS_BODY(2, type, name, arg1, arg2); \ - } - #undef _syscall3 - #define _syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3) { \ - LSS_BODY(3, type, name, arg1, arg2, arg3); \ - } - #undef _syscall4 - #define _syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4) { \ - LSS_BODY(4, type, name, arg1, arg2, arg3, arg4); \ - } - #undef _syscall5 - #define _syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5) { \ - LSS_BODY(5, type, name, arg1, arg2, arg3, arg4, arg5); \ - } - #undef _syscall6 - #define _syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \ - type4, arg4, type5, arg5, type6, arg6) \ - type LSS_NAME(name)(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ - type5 arg5, type6 arg6) { \ - LSS_BODY(6, type, name, arg1, arg2, arg3, arg4, arg5, arg6); \ - } - /* clone function adapted from glibc 2.3.6 clone.S */ - /* TODO(csilvers): consider wrapping some args up in a struct, like we - * do for i386's _syscall6, so we can compile successfully on gcc 2.95 - */ - LSS_INLINE int LSS_NAME(clone)(int (*fn)(void *), void *child_stack, - int flags, void *arg, int *parent_tidptr, - void *newtls, int *child_tidptr) { - long __ret, __err; - { - register int (*__fn)(void *) __asm__ ("r8") = fn; - register void *__cstack __asm__ ("r4") = child_stack; - register int __flags __asm__ ("r3") = flags; - register void * __arg __asm__ ("r9") = arg; - register int * __ptidptr __asm__ ("r5") = parent_tidptr; - register void * __newtls __asm__ ("r6") = newtls; - register int * __ctidptr __asm__ ("r7") = child_tidptr; - __asm__ __volatile__( - /* check for fn == NULL - * and child_stack == NULL - */ - "cmpwi cr0, %6, 0\n\t" - "cmpwi cr1, %7, 0\n\t" - "cror cr0*4+eq, cr1*4+eq, cr0*4+eq\n\t" - "beq- cr0, 1f\n\t" - - /* set up stack frame for child */ - "clrrwi %7, %7, 4\n\t" - "li 0, 0\n\t" - "stwu 0, -16(%7)\n\t" - - /* fn, arg, child_stack are saved across the syscall: r28-30 */ - "mr 28, %6\n\t" - "mr 29, %7\n\t" - "mr 27, %9\n\t" - - /* syscall */ - "li 0, %4\n\t" - /* flags already in r3 - * child_stack already in r4 - * ptidptr already in r5 - * newtls already in r6 - * ctidptr already in r7 - */ - "sc\n\t" - - /* Test if syscall was successful */ - "cmpwi cr1, 3, 0\n\t" - "crandc cr1*4+eq, cr1*4+eq, cr0*4+so\n\t" - "bne- cr1, 1f\n\t" - - /* Do the function call */ - "mtctr 28\n\t" - "mr 3, 27\n\t" - "bctrl\n\t" - - /* Call _exit(r3) */ - "li 0, %5\n\t" - "sc\n\t" - - /* Return to parent */ - "1:\n" - "mfcr %1\n\t" - "mr %0, 3\n\t" - : "=r" (__ret), "=r" (__err) - : "0" (-1), "1" (EINVAL), - "i" (__NR_clone), "i" (__NR_exit), - "r" (__fn), "r" (__cstack), "r" (__flags), - "r" (__arg), "r" (__ptidptr), "r" (__newtls), - "r" (__ctidptr) - : "cr0", "cr1", "memory", "ctr", - "r0", "r29", "r27", "r28"); - } - LSS_RETURN(int, __ret, __err); - } - #endif - #define __NR__exit __NR_exit - #define __NR__gettid __NR_gettid - #define __NR__mremap __NR_mremap - LSS_INLINE _syscall1(void *, brk, void *, e) - LSS_INLINE _syscall1(int, chdir, const char *,p) - LSS_INLINE _syscall1(int, close, int, f) - LSS_INLINE _syscall2(int, clock_getres, int, c, - struct kernel_timespec*, t) - LSS_INLINE _syscall2(int, clock_gettime, int, c, - struct kernel_timespec*, t) - LSS_INLINE _syscall1(int, dup, int, f) - #if !defined(__aarch64__) - // The dup2 syscall has been deprecated on aarch64. We polyfill it below. - LSS_INLINE _syscall2(int, dup2, int, s, - int, d) - #endif - LSS_INLINE _syscall3(int, execve, const char*, f, - const char*const*,a,const char*const*, e) - LSS_INLINE _syscall1(int, _exit, int, e) - LSS_INLINE _syscall1(int, exit_group, int, e) - LSS_INLINE _syscall3(int, fcntl, int, f, - int, c, long, a) - #if !defined(__aarch64__) - // The fork syscall has been deprecated on aarch64. We polyfill it below. - LSS_INLINE _syscall0(pid_t, fork) - #endif - LSS_INLINE _syscall2(int, fstat, int, f, - struct kernel_stat*, b) - LSS_INLINE _syscall2(int, fstatfs, int, f, - struct kernel_statfs*, b) - #if defined(__x86_64__) - /* Need to make sure off_t isn't truncated to 32-bits under x32. */ - LSS_INLINE int LSS_NAME(ftruncate)(int f, off_t l) { - LSS_BODY(2, int, ftruncate, LSS_SYSCALL_ARG(f), (uint64_t)(l)); - } - #else - LSS_INLINE _syscall2(int, ftruncate, int, f, - off_t, l) - #endif - LSS_INLINE _syscall4(int, futex, int*, a, - int, o, int, v, - struct kernel_timespec*, t) - LSS_INLINE _syscall3(int, getdents, int, f, - struct kernel_dirent*, d, int, c) - LSS_INLINE _syscall3(int, getdents64, int, f, - struct kernel_dirent64*, d, int, c) - LSS_INLINE _syscall0(gid_t, getegid) - LSS_INLINE _syscall0(uid_t, geteuid) - #if !defined(__aarch64__) - // The getgprp syscall has been deprecated on aarch64. - LSS_INLINE _syscall0(pid_t, getpgrp) - #endif - LSS_INLINE _syscall0(pid_t, getpid) - LSS_INLINE _syscall0(pid_t, getppid) - LSS_INLINE _syscall2(int, getpriority, int, a, - int, b) - LSS_INLINE _syscall3(int, getresgid, gid_t *, r, - gid_t *, e, gid_t *, s) - LSS_INLINE _syscall3(int, getresuid, uid_t *, r, - uid_t *, e, uid_t *, s) -#if !defined(__ARM_EABI__) - LSS_INLINE _syscall2(int, getrlimit, int, r, - struct kernel_rlimit*, l) -#endif - LSS_INLINE _syscall1(pid_t, getsid, pid_t, p) - LSS_INLINE _syscall0(pid_t, _gettid) - LSS_INLINE _syscall2(pid_t, gettimeofday, struct kernel_timeval*, t, - void*, tz) - LSS_INLINE _syscall5(int, setxattr, const char *,p, - const char *, n, const void *,v, - size_t, s, int, f) - LSS_INLINE _syscall5(int, lsetxattr, const char *,p, - const char *, n, const void *,v, - size_t, s, int, f) - LSS_INLINE _syscall4(ssize_t, getxattr, const char *,p, - const char *, n, void *, v, size_t, s) - LSS_INLINE _syscall4(ssize_t, lgetxattr, const char *,p, - const char *, n, void *, v, size_t, s) - LSS_INLINE _syscall3(ssize_t, listxattr, const char *,p, - char *, l, size_t, s) - LSS_INLINE _syscall3(ssize_t, llistxattr, const char *,p, - char *, l, size_t, s) - LSS_INLINE _syscall3(int, ioctl, int, d, - int, r, void *, a) - LSS_INLINE _syscall2(int, ioprio_get, int, which, - int, who) - LSS_INLINE _syscall3(int, ioprio_set, int, which, - int, who, int, ioprio) - LSS_INLINE _syscall2(int, kill, pid_t, p, - int, s) - #if defined(__x86_64__) - /* Need to make sure off_t isn't truncated to 32-bits under x32. */ - LSS_INLINE off_t LSS_NAME(lseek)(int f, off_t o, int w) { - _LSS_BODY(3, off_t, lseek, off_t, LSS_SYSCALL_ARG(f), (uint64_t)(o), - LSS_SYSCALL_ARG(w)); - } - #else - LSS_INLINE _syscall3(off_t, lseek, int, f, - off_t, o, int, w) - #endif - LSS_INLINE _syscall2(int, munmap, void*, s, - size_t, l) - LSS_INLINE _syscall6(long, move_pages, pid_t, p, - unsigned long, n, void **,g, int *, d, - int *, s, int, f) - LSS_INLINE _syscall3(int, mprotect, const void *,a, - size_t, l, int, p) - LSS_INLINE _syscall5(void*, _mremap, void*, o, - size_t, os, size_t, ns, - unsigned long, f, void *, a) - #if !defined(__aarch64__) - // The open and poll syscalls have been deprecated on aarch64. We polyfill - // them below. - LSS_INLINE _syscall3(int, open, const char*, p, - int, f, int, m) - LSS_INLINE _syscall3(int, poll, struct kernel_pollfd*, u, - unsigned int, n, int, t) - #endif - LSS_INLINE _syscall5(int, prctl, int, option, - unsigned long, arg2, - unsigned long, arg3, - unsigned long, arg4, - unsigned long, arg5) - LSS_INLINE _syscall4(long, ptrace, int, r, - pid_t, p, void *, a, void *, d) - #if defined(__NR_quotactl) - // Defined on x86_64 / i386 only - LSS_INLINE _syscall4(int, quotactl, int, cmd, const char *, special, - int, id, caddr_t, addr) - #endif - LSS_INLINE _syscall3(ssize_t, read, int, f, - void *, b, size_t, c) - #if !defined(__aarch64__) - // The readlink syscall has been deprecated on aarch64. We polyfill below. - LSS_INLINE _syscall3(int, readlink, const char*, p, - char*, b, size_t, s) - #endif - LSS_INLINE _syscall4(int, rt_sigaction, int, s, - const struct kernel_sigaction*, a, - struct kernel_sigaction*, o, size_t, c) - LSS_INLINE _syscall2(int, rt_sigpending, struct kernel_sigset_t *, s, - size_t, c) - LSS_INLINE _syscall4(int, rt_sigprocmask, int, h, - const struct kernel_sigset_t*, s, - struct kernel_sigset_t*, o, size_t, c) - LSS_INLINE _syscall2(int, rt_sigsuspend, - const struct kernel_sigset_t*, s, size_t, c) - LSS_INLINE _syscall3(int, sched_getaffinity,pid_t, p, - unsigned int, l, unsigned long *, m) - LSS_INLINE _syscall3(int, sched_setaffinity,pid_t, p, - unsigned int, l, unsigned long *, m) - LSS_INLINE _syscall0(int, sched_yield) - LSS_INLINE _syscall1(long, set_tid_address, int *, t) - LSS_INLINE _syscall1(int, setfsgid, gid_t, g) - LSS_INLINE _syscall1(int, setfsuid, uid_t, u) - LSS_INLINE _syscall1(int, setuid, uid_t, u) - LSS_INLINE _syscall1(int, setgid, gid_t, g) - LSS_INLINE _syscall2(int, setpgid, pid_t, p, - pid_t, g) - LSS_INLINE _syscall3(int, setpriority, int, a, - int, b, int, p) - LSS_INLINE _syscall3(int, setresgid, gid_t, r, - gid_t, e, gid_t, s) - LSS_INLINE _syscall3(int, setresuid, uid_t, r, - uid_t, e, uid_t, s) - LSS_INLINE _syscall2(int, setrlimit, int, r, - const struct kernel_rlimit*, l) - LSS_INLINE _syscall0(pid_t, setsid) - LSS_INLINE _syscall2(int, sigaltstack, const stack_t*, s, - const stack_t*, o) - #if defined(__NR_sigreturn) - LSS_INLINE _syscall1(int, sigreturn, unsigned long, u) - #endif - #if !defined(__aarch64__) - // The stat syscall has been deprecated on aarch64. We polyfill it below. - LSS_INLINE _syscall2(int, stat, const char*, f, - struct kernel_stat*, b) - #endif - LSS_INLINE _syscall2(int, statfs, const char*, f, - struct kernel_statfs*, b) - LSS_INLINE _syscall3(int, tgkill, pid_t, p, - pid_t, t, int, s) - LSS_INLINE _syscall2(int, tkill, pid_t, p, - int, s) - #if !defined(__aarch64__) - // The unlink syscall has been deprecated on aarch64. We polyfill it below. - LSS_INLINE _syscall1(int, unlink, const char*, f) - #endif - LSS_INLINE _syscall3(ssize_t, write, int, f, - const void *, b, size_t, c) - LSS_INLINE _syscall3(ssize_t, writev, int, f, - const struct kernel_iovec*, v, size_t, c) - #if defined(__NR_getcpu) - LSS_INLINE _syscall3(long, getcpu, unsigned *, cpu, - unsigned *, node, void *, unused) - #endif - #if defined(__x86_64__) || \ - (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI32) - LSS_INLINE _syscall3(int, recvmsg, int, s, - struct kernel_msghdr*, m, int, f) - LSS_INLINE _syscall3(int, sendmsg, int, s, - const struct kernel_msghdr*, m, int, f) - LSS_INLINE _syscall6(int, sendto, int, s, - const void*, m, size_t, l, - int, f, - const struct kernel_sockaddr*, a, int, t) - LSS_INLINE _syscall2(int, shutdown, int, s, - int, h) - LSS_INLINE _syscall3(int, socket, int, d, - int, t, int, p) - LSS_INLINE _syscall4(int, socketpair, int, d, - int, t, int, p, int*, s) - #endif - #if defined(__x86_64__) - /* Need to make sure loff_t isn't truncated to 32-bits under x32. */ - LSS_INLINE int LSS_NAME(fallocate)(int f, int mode, loff_t offset, - loff_t len) { - LSS_BODY(4, int, fallocate, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(mode), - (uint64_t)(offset), (uint64_t)(len)); - } - - LSS_INLINE int LSS_NAME(getresgid32)(gid_t *rgid, - gid_t *egid, - gid_t *sgid) { - return LSS_NAME(getresgid)(rgid, egid, sgid); - } - - LSS_INLINE int LSS_NAME(getresuid32)(uid_t *ruid, - uid_t *euid, - uid_t *suid) { - return LSS_NAME(getresuid)(ruid, euid, suid); - } - - /* Need to make sure __off64_t isn't truncated to 32-bits under x32. */ - LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d, - int64_t o) { - LSS_BODY(6, void*, mmap, LSS_SYSCALL_ARG(s), LSS_SYSCALL_ARG(l), - LSS_SYSCALL_ARG(p), LSS_SYSCALL_ARG(f), - LSS_SYSCALL_ARG(d), (uint64_t)(o)); - } - - LSS_INLINE _syscall4(int, newfstatat, int, d, - const char *, p, - struct kernel_stat*, b, int, f) - - LSS_INLINE int LSS_NAME(setfsgid32)(gid_t gid) { - return LSS_NAME(setfsgid)(gid); - } - - LSS_INLINE int LSS_NAME(setfsuid32)(uid_t uid) { - return LSS_NAME(setfsuid)(uid); - } - - LSS_INLINE int LSS_NAME(setresgid32)(gid_t rgid, gid_t egid, gid_t sgid) { - return LSS_NAME(setresgid)(rgid, egid, sgid); - } - - LSS_INLINE int LSS_NAME(setresuid32)(uid_t ruid, uid_t euid, uid_t suid) { - return LSS_NAME(setresuid)(ruid, euid, suid); - } - - LSS_INLINE int LSS_NAME(sigaction)(int signum, - const struct kernel_sigaction *act, - struct kernel_sigaction *oldact) { - /* On x86_64, the kernel requires us to always set our own - * SA_RESTORER in order to be able to return from a signal handler. - * This function must have a "magic" signature that the "gdb" - * (and maybe the kernel?) can recognize. - */ - if (act != NULL && !(act->sa_flags & SA_RESTORER)) { - struct kernel_sigaction a = *act; - a.sa_flags |= SA_RESTORER; - a.sa_restorer = LSS_NAME(restore_rt)(); - return LSS_NAME(rt_sigaction)(signum, &a, oldact, - (KERNEL_NSIG+7)/8); - } else { - return LSS_NAME(rt_sigaction)(signum, act, oldact, - (KERNEL_NSIG+7)/8); - } - } - - LSS_INLINE int LSS_NAME(sigpending)(struct kernel_sigset_t *set) { - return LSS_NAME(rt_sigpending)(set, (KERNEL_NSIG+7)/8); - } - - LSS_INLINE int LSS_NAME(sigprocmask)(int how, - const struct kernel_sigset_t *set, - struct kernel_sigset_t *oldset) { - return LSS_NAME(rt_sigprocmask)(how, set, oldset, (KERNEL_NSIG+7)/8); - } - - LSS_INLINE int LSS_NAME(sigsuspend)(const struct kernel_sigset_t *set) { - return LSS_NAME(rt_sigsuspend)(set, (KERNEL_NSIG+7)/8); - } - #endif - #if defined(__x86_64__) || defined(__ARM_ARCH_3__) || \ - defined(__ARM_EABI__) || defined(__aarch64__) || \ - (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI32) - LSS_INLINE _syscall4(pid_t, wait4, pid_t, p, - int*, s, int, o, - struct kernel_rusage*, r) - - LSS_INLINE pid_t LSS_NAME(waitpid)(pid_t pid, int *status, int options){ - return LSS_NAME(wait4)(pid, status, options, 0); - } - #endif - #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) - LSS_INLINE _syscall4(int, openat, int, d, const char *, p, int, f, int, m) - LSS_INLINE _syscall3(int, unlinkat, int, d, const char *, p, int, f) - #endif - #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) - #define __NR__getresgid32 __NR_getresgid32 - #define __NR__getresuid32 __NR_getresuid32 - #define __NR__setfsgid32 __NR_setfsgid32 - #define __NR__setfsuid32 __NR_setfsuid32 - #define __NR__setresgid32 __NR_setresgid32 - #define __NR__setresuid32 __NR_setresuid32 -#if defined(__ARM_EABI__) - LSS_INLINE _syscall2(int, ugetrlimit, int, r, - struct kernel_rlimit*, l) -#endif - LSS_INLINE _syscall3(int, _getresgid32, gid_t *, r, - gid_t *, e, gid_t *, s) - LSS_INLINE _syscall3(int, _getresuid32, uid_t *, r, - uid_t *, e, uid_t *, s) - LSS_INLINE _syscall1(int, _setfsgid32, gid_t, f) - LSS_INLINE _syscall1(int, _setfsuid32, uid_t, f) - LSS_INLINE _syscall3(int, _setresgid32, gid_t, r, - gid_t, e, gid_t, s) - LSS_INLINE _syscall3(int, _setresuid32, uid_t, r, - uid_t, e, uid_t, s) - - LSS_INLINE int LSS_NAME(getresgid32)(gid_t *rgid, - gid_t *egid, - gid_t *sgid) { - int rc; - if ((rc = LSS_NAME(_getresgid32)(rgid, egid, sgid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((rgid == NULL) || (egid == NULL) || (sgid == NULL)) { - return EFAULT; - } - // Clear the high bits first, since getresgid only sets 16 bits - *rgid = *egid = *sgid = 0; - rc = LSS_NAME(getresgid)(rgid, egid, sgid); - } - return rc; - } - - LSS_INLINE int LSS_NAME(getresuid32)(uid_t *ruid, - uid_t *euid, - uid_t *suid) { - int rc; - if ((rc = LSS_NAME(_getresuid32)(ruid, euid, suid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((ruid == NULL) || (euid == NULL) || (suid == NULL)) { - return EFAULT; - } - // Clear the high bits first, since getresuid only sets 16 bits - *ruid = *euid = *suid = 0; - rc = LSS_NAME(getresuid)(ruid, euid, suid); - } - return rc; - } - - LSS_INLINE int LSS_NAME(setfsgid32)(gid_t gid) { - int rc; - if ((rc = LSS_NAME(_setfsgid32)(gid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((unsigned int)gid & ~0xFFFFu) { - rc = EINVAL; - } else { - rc = LSS_NAME(setfsgid)(gid); - } - } - return rc; - } - - LSS_INLINE int LSS_NAME(setfsuid32)(uid_t uid) { - int rc; - if ((rc = LSS_NAME(_setfsuid32)(uid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((unsigned int)uid & ~0xFFFFu) { - rc = EINVAL; - } else { - rc = LSS_NAME(setfsuid)(uid); - } - } - return rc; - } - - LSS_INLINE int LSS_NAME(setresgid32)(gid_t rgid, gid_t egid, gid_t sgid) { - int rc; - if ((rc = LSS_NAME(_setresgid32)(rgid, egid, sgid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((unsigned int)rgid & ~0xFFFFu || - (unsigned int)egid & ~0xFFFFu || - (unsigned int)sgid & ~0xFFFFu) { - rc = EINVAL; - } else { - rc = LSS_NAME(setresgid)(rgid, egid, sgid); - } - } - return rc; - } - - LSS_INLINE int LSS_NAME(setresuid32)(uid_t ruid, uid_t euid, uid_t suid) { - int rc; - if ((rc = LSS_NAME(_setresuid32)(ruid, euid, suid)) < 0 && - LSS_ERRNO == ENOSYS) { - if ((unsigned int)ruid & ~0xFFFFu || - (unsigned int)euid & ~0xFFFFu || - (unsigned int)suid & ~0xFFFFu) { - rc = EINVAL; - } else { - rc = LSS_NAME(setresuid)(ruid, euid, suid); - } - } - return rc; - } - #endif - LSS_INLINE int LSS_NAME(sigemptyset)(struct kernel_sigset_t *set) { - memset(&set->sig, 0, sizeof(set->sig)); - return 0; - } - - LSS_INLINE int LSS_NAME(sigfillset)(struct kernel_sigset_t *set) { - memset(&set->sig, -1, sizeof(set->sig)); - return 0; - } - - LSS_INLINE int LSS_NAME(sigaddset)(struct kernel_sigset_t *set, - int signum) { - if (signum < 1 || signum > (int)(8*sizeof(set->sig))) { - LSS_ERRNO = EINVAL; - return -1; - } else { - set->sig[(signum - 1)/(8*sizeof(set->sig[0]))] - |= 1UL << ((signum - 1) % (8*sizeof(set->sig[0]))); - return 0; - } - } - - LSS_INLINE int LSS_NAME(sigdelset)(struct kernel_sigset_t *set, - int signum) { - if (signum < 1 || signum > (int)(8*sizeof(set->sig))) { - LSS_ERRNO = EINVAL; - return -1; - } else { - set->sig[(signum - 1)/(8*sizeof(set->sig[0]))] - &= ~(1UL << ((signum - 1) % (8*sizeof(set->sig[0])))); - return 0; - } - } - - LSS_INLINE int LSS_NAME(sigismember)(struct kernel_sigset_t *set, - int signum) { - if (signum < 1 || signum > (int)(8*sizeof(set->sig))) { - LSS_ERRNO = EINVAL; - return -1; - } else { - return !!(set->sig[(signum - 1)/(8*sizeof(set->sig[0]))] & - (1UL << ((signum - 1) % (8*sizeof(set->sig[0]))))); - } - } - #if defined(__i386__) || defined(__ARM_ARCH_3__) || \ - defined(__ARM_EABI__) || \ - (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) || defined(__PPC__) - #define __NR__sigaction __NR_sigaction - #define __NR__sigpending __NR_sigpending - #define __NR__sigprocmask __NR_sigprocmask - #define __NR__sigsuspend __NR_sigsuspend - #define __NR__socketcall __NR_socketcall - LSS_INLINE _syscall2(int, fstat64, int, f, - struct kernel_stat64 *, b) - LSS_INLINE _syscall5(int, _llseek, uint, fd, - unsigned long, hi, unsigned long, lo, - loff_t *, res, uint, wh) -#if !defined(__ARM_EABI__) - LSS_INLINE _syscall1(void*, mmap, void*, a) -#endif - LSS_INLINE _syscall6(void*, mmap2, void*, s, - size_t, l, int, p, - int, f, int, d, - off_t, o) - LSS_INLINE _syscall3(int, _sigaction, int, s, - const struct kernel_old_sigaction*, a, - struct kernel_old_sigaction*, o) - LSS_INLINE _syscall1(int, _sigpending, unsigned long*, s) - LSS_INLINE _syscall3(int, _sigprocmask, int, h, - const unsigned long*, s, - unsigned long*, o) - #ifdef __PPC__ - LSS_INLINE _syscall1(int, _sigsuspend, unsigned long, s) - #else - LSS_INLINE _syscall3(int, _sigsuspend, const void*, a, - int, b, - unsigned long, s) - #endif - LSS_INLINE _syscall2(int, stat64, const char *, p, - struct kernel_stat64 *, b) - - LSS_INLINE int LSS_NAME(sigaction)(int signum, - const struct kernel_sigaction *act, - struct kernel_sigaction *oldact) { - int old_errno = LSS_ERRNO; - int rc; - struct kernel_sigaction a; - if (act != NULL) { - a = *act; - #ifdef __i386__ - /* On i386, the kernel requires us to always set our own - * SA_RESTORER when using realtime signals. Otherwise, it does not - * know how to return from a signal handler. This function must have - * a "magic" signature that the "gdb" (and maybe the kernel?) can - * recognize. - * Apparently, a SA_RESTORER is implicitly set by the kernel, when - * using non-realtime signals. - * - * TODO: Test whether ARM needs a restorer - */ - if (!(a.sa_flags & SA_RESTORER)) { - a.sa_flags |= SA_RESTORER; - a.sa_restorer = (a.sa_flags & SA_SIGINFO) - ? LSS_NAME(restore_rt)() : LSS_NAME(restore)(); - } - #endif - } - rc = LSS_NAME(rt_sigaction)(signum, act ? &a : act, oldact, - (KERNEL_NSIG+7)/8); - if (rc < 0 && LSS_ERRNO == ENOSYS) { - struct kernel_old_sigaction oa, ooa, *ptr_a = &oa, *ptr_oa = &ooa; - if (!act) { - ptr_a = NULL; - } else { - oa.sa_handler_ = act->sa_handler_; - memcpy(&oa.sa_mask, &act->sa_mask, sizeof(oa.sa_mask)); - #ifndef __mips__ - oa.sa_restorer = act->sa_restorer; - #endif - oa.sa_flags = act->sa_flags; - } - if (!oldact) { - ptr_oa = NULL; - } - LSS_ERRNO = old_errno; - rc = LSS_NAME(_sigaction)(signum, ptr_a, ptr_oa); - if (rc == 0 && oldact) { - if (act) { - memcpy(oldact, act, sizeof(*act)); - } else { - memset(oldact, 0, sizeof(*oldact)); - } - oldact->sa_handler_ = ptr_oa->sa_handler_; - oldact->sa_flags = ptr_oa->sa_flags; - memcpy(&oldact->sa_mask, &ptr_oa->sa_mask, sizeof(ptr_oa->sa_mask)); - #ifndef __mips__ - oldact->sa_restorer = ptr_oa->sa_restorer; - #endif - } - } - return rc; - } - - LSS_INLINE int LSS_NAME(sigpending)(struct kernel_sigset_t *set) { - int old_errno = LSS_ERRNO; - int rc = LSS_NAME(rt_sigpending)(set, (KERNEL_NSIG+7)/8); - if (rc < 0 && LSS_ERRNO == ENOSYS) { - LSS_ERRNO = old_errno; - LSS_NAME(sigemptyset)(set); - rc = LSS_NAME(_sigpending)(&set->sig[0]); - } - return rc; - } - - LSS_INLINE int LSS_NAME(sigprocmask)(int how, - const struct kernel_sigset_t *set, - struct kernel_sigset_t *oldset) { - int olderrno = LSS_ERRNO; - int rc = LSS_NAME(rt_sigprocmask)(how, set, oldset, (KERNEL_NSIG+7)/8); - if (rc < 0 && LSS_ERRNO == ENOSYS) { - LSS_ERRNO = olderrno; - if (oldset) { - LSS_NAME(sigemptyset)(oldset); - } - rc = LSS_NAME(_sigprocmask)(how, - set ? &set->sig[0] : NULL, - oldset ? &oldset->sig[0] : NULL); - } - return rc; - } - - LSS_INLINE int LSS_NAME(sigsuspend)(const struct kernel_sigset_t *set) { - int olderrno = LSS_ERRNO; - int rc = LSS_NAME(rt_sigsuspend)(set, (KERNEL_NSIG+7)/8); - if (rc < 0 && LSS_ERRNO == ENOSYS) { - LSS_ERRNO = olderrno; - rc = LSS_NAME(_sigsuspend)( - #ifndef __PPC__ - set, 0, - #endif - set->sig[0]); - } - return rc; - } - #endif - #if defined(__PPC__) - #undef LSS_SC_LOADARGS_0 - #define LSS_SC_LOADARGS_0(dummy...) - #undef LSS_SC_LOADARGS_1 - #define LSS_SC_LOADARGS_1(arg1) \ - __sc_4 = (unsigned long) (arg1) - #undef LSS_SC_LOADARGS_2 - #define LSS_SC_LOADARGS_2(arg1, arg2) \ - LSS_SC_LOADARGS_1(arg1); \ - __sc_5 = (unsigned long) (arg2) - #undef LSS_SC_LOADARGS_3 - #define LSS_SC_LOADARGS_3(arg1, arg2, arg3) \ - LSS_SC_LOADARGS_2(arg1, arg2); \ - __sc_6 = (unsigned long) (arg3) - #undef LSS_SC_LOADARGS_4 - #define LSS_SC_LOADARGS_4(arg1, arg2, arg3, arg4) \ - LSS_SC_LOADARGS_3(arg1, arg2, arg3); \ - __sc_7 = (unsigned long) (arg4) - #undef LSS_SC_LOADARGS_5 - #define LSS_SC_LOADARGS_5(arg1, arg2, arg3, arg4, arg5) \ - LSS_SC_LOADARGS_4(arg1, arg2, arg3, arg4); \ - __sc_8 = (unsigned long) (arg5) - #undef LSS_SC_BODY - #define LSS_SC_BODY(nr, type, opt, args...) \ - long __sc_ret, __sc_err; \ - { \ - register unsigned long __sc_0 __asm__ ("r0") = __NR_socketcall; \ - register unsigned long __sc_3 __asm__ ("r3") = opt; \ - register unsigned long __sc_4 __asm__ ("r4"); \ - register unsigned long __sc_5 __asm__ ("r5"); \ - register unsigned long __sc_6 __asm__ ("r6"); \ - register unsigned long __sc_7 __asm__ ("r7"); \ - register unsigned long __sc_8 __asm__ ("r8"); \ - LSS_SC_LOADARGS_##nr(args); \ - __asm__ __volatile__ \ - ("stwu 1, -48(1)\n\t" \ - "stw 4, 20(1)\n\t" \ - "stw 5, 24(1)\n\t" \ - "stw 6, 28(1)\n\t" \ - "stw 7, 32(1)\n\t" \ - "stw 8, 36(1)\n\t" \ - "addi 4, 1, 20\n\t" \ - "sc\n\t" \ - "mfcr %0" \ - : "=&r" (__sc_0), \ - "=&r" (__sc_3), "=&r" (__sc_4), \ - "=&r" (__sc_5), "=&r" (__sc_6), \ - "=&r" (__sc_7), "=&r" (__sc_8) \ - : LSS_ASMINPUT_##nr \ - : "cr0", "ctr", "memory"); \ - __sc_ret = __sc_3; \ - __sc_err = __sc_0; \ - } \ - LSS_RETURN(type, __sc_ret, __sc_err) - - LSS_INLINE ssize_t LSS_NAME(recvmsg)(int s,struct kernel_msghdr *msg, - int flags){ - LSS_SC_BODY(3, ssize_t, 17, s, msg, flags); - } - - LSS_INLINE ssize_t LSS_NAME(sendmsg)(int s, - const struct kernel_msghdr *msg, - int flags) { - LSS_SC_BODY(3, ssize_t, 16, s, msg, flags); - } - - // TODO(csilvers): why is this ifdef'ed out? -#if 0 - LSS_INLINE ssize_t LSS_NAME(sendto)(int s, const void *buf, size_t len, - int flags, - const struct kernel_sockaddr *to, - unsigned int tolen) { - LSS_BODY(6, ssize_t, 11, s, buf, len, flags, to, tolen); - } -#endif - - LSS_INLINE int LSS_NAME(shutdown)(int s, int how) { - LSS_SC_BODY(2, int, 13, s, how); - } - - LSS_INLINE int LSS_NAME(socket)(int domain, int type, int protocol) { - LSS_SC_BODY(3, int, 1, domain, type, protocol); - } - - LSS_INLINE int LSS_NAME(socketpair)(int d, int type, int protocol, - int sv[2]) { - LSS_SC_BODY(4, int, 8, d, type, protocol, sv); - } - #endif - #if defined(__ARM_EABI__) || defined (__aarch64__) - LSS_INLINE _syscall3(ssize_t, recvmsg, int, s, struct kernel_msghdr*, msg, - int, flags) - LSS_INLINE _syscall3(ssize_t, sendmsg, int, s, const struct kernel_msghdr*, - msg, int, flags) - LSS_INLINE _syscall6(ssize_t, sendto, int, s, const void*, buf, size_t,len, - int, flags, const struct kernel_sockaddr*, to, - unsigned int, tolen) - LSS_INLINE _syscall2(int, shutdown, int, s, int, how) - LSS_INLINE _syscall3(int, socket, int, domain, int, type, int, protocol) - LSS_INLINE _syscall4(int, socketpair, int, d, int, type, int, protocol, - int*, sv) - #endif - #if defined(__i386__) || defined(__ARM_ARCH_3__) || \ - (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) - #define __NR__socketcall __NR_socketcall - LSS_INLINE _syscall2(int, _socketcall, int, c, - va_list, a) - LSS_INLINE int LSS_NAME(socketcall)(int op, ...) { - int rc; - va_list ap; - va_start(ap, op); - rc = LSS_NAME(_socketcall)(op, ap); - va_end(ap); - return rc; - } - - LSS_INLINE ssize_t LSS_NAME(recvmsg)(int s,struct kernel_msghdr *msg, - int flags){ - return (ssize_t)LSS_NAME(socketcall)(17, s, msg, flags); - } - - LSS_INLINE ssize_t LSS_NAME(sendmsg)(int s, - const struct kernel_msghdr *msg, - int flags) { - return (ssize_t)LSS_NAME(socketcall)(16, s, msg, flags); - } - - LSS_INLINE ssize_t LSS_NAME(sendto)(int s, const void *buf, size_t len, - int flags, - const struct kernel_sockaddr *to, - unsigned int tolen) { - return (ssize_t)LSS_NAME(socketcall)(11, s, buf, len, flags, to, tolen); - } - - LSS_INLINE int LSS_NAME(shutdown)(int s, int how) { - return LSS_NAME(socketcall)(13, s, how); - } - - LSS_INLINE int LSS_NAME(socket)(int domain, int type, int protocol) { - return LSS_NAME(socketcall)(1, domain, type, protocol); - } - - LSS_INLINE int LSS_NAME(socketpair)(int d, int type, int protocol, - int sv[2]) { - return LSS_NAME(socketcall)(8, d, type, protocol, sv); - } - #endif - #if defined(__i386__) || defined(__PPC__) - LSS_INLINE _syscall4(int, fstatat64, int, d, - const char *, p, - struct kernel_stat64 *, b, int, f) - #endif - #if defined(__i386__) || defined(__PPC__) || \ - (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) - LSS_INLINE _syscall3(pid_t, waitpid, pid_t, p, - int*, s, int, o) - #endif - #if defined(__mips__) - /* sys_pipe() on MIPS has non-standard calling conventions, as it returns - * both file handles through CPU registers. - */ - LSS_INLINE int LSS_NAME(pipe)(int *p) { - register unsigned long __v0 __asm__("$2") = __NR_pipe; - register unsigned long __v1 __asm__("$3"); - register unsigned long __r7 __asm__("$7"); - __asm__ __volatile__ ("syscall\n" - : "=r"(__v0), "=r"(__v1), "=r" (__r7) - : "0"(__v0) - : "$8", "$9", "$10", "$11", "$12", - "$13", "$14", "$15", "$24", "$25", "memory"); - if (__r7) { - unsigned long __errnovalue = __v0; - LSS_ERRNO = __errnovalue; - return -1; - } else { - p[0] = __v0; - p[1] = __v1; - return 0; - } - } - #elif !defined(__aarch64__) - // The unlink syscall has been deprecated on aarch64. We polyfill it below. - LSS_INLINE _syscall1(int, pipe, int *, p) - #endif - /* TODO(csilvers): see if ppc can/should support this as well */ - #if defined(__i386__) || defined(__ARM_ARCH_3__) || \ - defined(__ARM_EABI__) || \ - (defined(__mips__) && _MIPS_SIM != _MIPS_SIM_ABI64) - #define __NR__statfs64 __NR_statfs64 - #define __NR__fstatfs64 __NR_fstatfs64 - LSS_INLINE _syscall3(int, _statfs64, const char*, p, - size_t, s,struct kernel_statfs64*, b) - LSS_INLINE _syscall3(int, _fstatfs64, int, f, - size_t, s,struct kernel_statfs64*, b) - LSS_INLINE int LSS_NAME(statfs64)(const char *p, - struct kernel_statfs64 *b) { - return LSS_NAME(_statfs64)(p, sizeof(*b), b); - } - LSS_INLINE int LSS_NAME(fstatfs64)(int f,struct kernel_statfs64 *b) { - return LSS_NAME(_fstatfs64)(f, sizeof(*b), b); - } - #endif - - LSS_INLINE int LSS_NAME(execv)(const char *path, const char *const argv[]) { - extern char **environ; - return LSS_NAME(execve)(path, argv, (const char *const *)environ); - } - - LSS_INLINE pid_t LSS_NAME(gettid)(void) { - pid_t tid = LSS_NAME(_gettid)(); - if (tid != -1) { - return tid; - } - return LSS_NAME(getpid)(); - } - - LSS_INLINE void *LSS_NAME(mremap)(void *old_address, size_t old_size, - size_t new_size, int flags, ...) { - va_list ap; - void *new_address, *rc; - va_start(ap, flags); - new_address = va_arg(ap, void *); - rc = LSS_NAME(_mremap)(old_address, old_size, new_size, - flags, new_address); - va_end(ap); - return rc; - } - - LSS_INLINE int LSS_NAME(ptrace_detach)(pid_t pid) { - /* PTRACE_DETACH can sometimes forget to wake up the tracee and it - * then sends job control signals to the real parent, rather than to - * the tracer. We reduce the risk of this happening by starting a - * whole new time slice, and then quickly sending a SIGCONT signal - * right after detaching from the tracee. - * - * We use tkill to ensure that we only issue a wakeup for the thread being - * detached. Large multi threaded apps can take a long time in the kernel - * processing SIGCONT. - */ - int rc, err; - LSS_NAME(sched_yield)(); - rc = LSS_NAME(ptrace)(PTRACE_DETACH, pid, (void *)0, (void *)0); - err = LSS_ERRNO; - LSS_NAME(tkill)(pid, SIGCONT); - /* Old systems don't have tkill */ - if (LSS_ERRNO == ENOSYS) - LSS_NAME(kill)(pid, SIGCONT); - LSS_ERRNO = err; - return rc; - } - - LSS_INLINE int LSS_NAME(raise)(int sig) { - return LSS_NAME(kill)(LSS_NAME(getpid)(), sig); - } - - LSS_INLINE int LSS_NAME(setpgrp)(void) { - return LSS_NAME(setpgid)(0, 0); - } - - LSS_INLINE int LSS_NAME(sysconf)(int name) { - extern int __getpagesize(void); - switch (name) { - case _SC_OPEN_MAX: { - struct kernel_rlimit limit; -#if defined(__ARM_EABI__) - return LSS_NAME(ugetrlimit)(RLIMIT_NOFILE, &limit) < 0 - ? 8192 : limit.rlim_cur; -#else - return LSS_NAME(getrlimit)(RLIMIT_NOFILE, &limit) < 0 - ? 8192 : limit.rlim_cur; -#endif - } - case _SC_PAGESIZE: - return __getpagesize(); - default: - LSS_ERRNO = ENOSYS; - return -1; - } - } - #if defined(__x86_64__) - /* Need to make sure loff_t isn't truncated to 32-bits under x32. */ - LSS_INLINE ssize_t LSS_NAME(pread64)(int f, void *b, size_t c, loff_t o) { - LSS_BODY(4, ssize_t, pread64, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(b), - LSS_SYSCALL_ARG(c), (uint64_t)(o)); - } - - LSS_INLINE ssize_t LSS_NAME(pwrite64)(int f, const void *b, size_t c, - loff_t o) { - LSS_BODY(4, ssize_t, pwrite64, LSS_SYSCALL_ARG(f), LSS_SYSCALL_ARG(b), - LSS_SYSCALL_ARG(c), (uint64_t)(o)); - } - - LSS_INLINE int LSS_NAME(readahead)(int f, loff_t o, unsigned c) { - LSS_BODY(3, int, readahead, LSS_SYSCALL_ARG(f), (uint64_t)(o), - LSS_SYSCALL_ARG(c)); - } - #elif defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64 - LSS_INLINE _syscall4(ssize_t, pread64, int, f, - void *, b, size_t, c, - loff_t, o) - LSS_INLINE _syscall4(ssize_t, pwrite64, int, f, - const void *, b, size_t, c, - loff_t, o) - LSS_INLINE _syscall3(int, readahead, int, f, - loff_t, o, unsigned, c) - LSS_INLINE _syscall6(void *, mmap, void *, addr, size_t, length, int, prot, - int, flags, int, fd, int64_t, offset) - #else - #define __NR__pread64 __NR_pread64 - #define __NR__pwrite64 __NR_pwrite64 - #define __NR__readahead __NR_readahead - #if defined(__ARM_EABI__) || defined(__mips__) - /* On ARM and MIPS, a 64-bit parameter has to be in an even-odd register - * pair. Hence these calls ignore their fourth argument (r3) so that their - * fifth and sixth make such a pair (r4,r5). - */ - #define LSS_LLARG_PAD 0, - LSS_INLINE _syscall6(ssize_t, _pread64, int, f, - void *, b, size_t, c, - unsigned, skip, unsigned, o1, unsigned, o2) - LSS_INLINE _syscall6(ssize_t, _pwrite64, int, f, - const void *, b, size_t, c, - unsigned, skip, unsigned, o1, unsigned, o2) - LSS_INLINE _syscall5(int, _readahead, int, f, - unsigned, skip, - unsigned, o1, unsigned, o2, size_t, c) - #else - #define LSS_LLARG_PAD - LSS_INLINE _syscall5(ssize_t, _pread64, int, f, - void *, b, size_t, c, unsigned, o1, - unsigned, o2) - LSS_INLINE _syscall5(ssize_t, _pwrite64, int, f, - const void *, b, size_t, c, unsigned, o1, - long, o2) - LSS_INLINE _syscall4(int, _readahead, int, f, - unsigned, o1, unsigned, o2, size_t, c) - #endif - /* We force 64bit-wide parameters onto the stack, then access each - * 32-bit component individually. This guarantees that we build the - * correct parameters independent of the native byte-order of the - * underlying architecture. - */ - LSS_INLINE ssize_t LSS_NAME(pread64)(int fd, void *buf, size_t count, - loff_t off) { - union { loff_t off; unsigned arg[2]; } o = { off }; - return LSS_NAME(_pread64)(fd, buf, count, - LSS_LLARG_PAD o.arg[0], o.arg[1]); - } - LSS_INLINE ssize_t LSS_NAME(pwrite64)(int fd, const void *buf, - size_t count, loff_t off) { - union { loff_t off; unsigned arg[2]; } o = { off }; - return LSS_NAME(_pwrite64)(fd, buf, count, - LSS_LLARG_PAD o.arg[0], o.arg[1]); - } - LSS_INLINE int LSS_NAME(readahead)(int fd, loff_t off, int len) { - union { loff_t off; unsigned arg[2]; } o = { off }; - return LSS_NAME(_readahead)(fd, LSS_LLARG_PAD o.arg[0], o.arg[1], len); - } - #endif -#endif - -#if defined(__aarch64__) - LSS_INLINE _syscall3(int, dup3, int, s, int, d, int, f) - LSS_INLINE _syscall6(void *, mmap, void *, addr, size_t, length, int, prot, - int, flags, int, fd, int64_t, offset) - LSS_INLINE _syscall4(int, newfstatat, int, dirfd, const char *, pathname, - struct kernel_stat *, buf, int, flags) - LSS_INLINE _syscall2(int, pipe2, int *, pipefd, int, flags) - LSS_INLINE _syscall5(int, ppoll, struct kernel_pollfd *, u, - unsigned int, n, const struct kernel_timespec *, t, - const struct kernel_sigset_t *, sigmask, size_t, s) - LSS_INLINE _syscall4(int, readlinkat, int, d, const char *, p, char *, b, - size_t, s) -#endif - -/* - * Polyfills for deprecated syscalls. - */ - -#if defined(__aarch64__) - LSS_INLINE int LSS_NAME(dup2)(int s, int d) { - return LSS_NAME(dup3)(s, d, 0); - } - - LSS_INLINE int LSS_NAME(open)(const char *pathname, int flags, int mode) { - return LSS_NAME(openat)(AT_FDCWD, pathname, flags, mode); - } - - LSS_INLINE int LSS_NAME(unlink)(const char *pathname) { - return LSS_NAME(unlinkat)(AT_FDCWD, pathname, 0); - } - - LSS_INLINE int LSS_NAME(readlink)(const char *pathname, char *buffer, - size_t size) { - return LSS_NAME(readlinkat)(AT_FDCWD, pathname, buffer, size); - } - - LSS_INLINE pid_t LSS_NAME(pipe)(int *pipefd) { - return LSS_NAME(pipe2)(pipefd, 0); - } - - LSS_INLINE int LSS_NAME(poll)(struct kernel_pollfd *fds, unsigned int nfds, - int timeout) { - struct kernel_timespec timeout_ts; - struct kernel_timespec *timeout_ts_p = NULL; - - if (timeout >= 0) { - timeout_ts.tv_sec = timeout / 1000; - timeout_ts.tv_nsec = (timeout % 1000) * 1000000; - timeout_ts_p = &timeout_ts; - } - return LSS_NAME(ppoll)(fds, nfds, timeout_ts_p, NULL, 0); - } - - LSS_INLINE int LSS_NAME(stat)(const char *pathname, - struct kernel_stat *buf) { - return LSS_NAME(newfstatat)(AT_FDCWD, pathname, buf, 0); - } - - LSS_INLINE pid_t LSS_NAME(fork)(void) { - // No fork syscall on aarch64 - implement by means of the clone syscall. - // Note that this does not reset glibc's cached view of the PID/TID, so - // some glibc interfaces might go wrong in the forked subprocess. - int flags = SIGCHLD; - void *child_stack = NULL; - void *parent_tidptr = NULL; - void *newtls = NULL; - void *child_tidptr = NULL; - - LSS_REG(0, flags); - LSS_REG(1, child_stack); - LSS_REG(2, parent_tidptr); - LSS_REG(3, newtls); - LSS_REG(4, child_tidptr); - LSS_BODY(pid_t, clone, "r"(__r0), "r"(__r1), "r"(__r2), "r"(__r3), - "r"(__r4)); - } -#endif - -#ifdef __ANDROID__ - /* These restore the original values of these macros saved by the - * corresponding #pragma push_macro near the top of this file. */ -# pragma pop_macro("stat64") -# pragma pop_macro("fstat64") -# pragma pop_macro("lstat64") -#endif - -#if defined(__cplusplus) && !defined(SYS_CPLUSPLUS) -} -#endif - -#endif -#endif diff --git a/sources/pvmp3dec/Android.mk b/sources/pvmp3dec/Android.mk deleted file mode 100644 index 7708b17a..00000000 --- a/sources/pvmp3dec/Android.mk +++ /dev/null @@ -1,64 +0,0 @@ -LOCAL_PATH:= $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := \ - src/pvmp3_normalize.cpp \ - src/pvmp3_alias_reduction.cpp \ - src/pvmp3_crc.cpp \ - src/pvmp3_decode_header.cpp \ - src/pvmp3_decode_huff_cw.cpp \ - src/pvmp3_getbits.cpp \ - src/pvmp3_dequantize_sample.cpp \ - src/pvmp3_framedecoder.cpp \ - src/pvmp3_get_main_data_size.cpp \ - src/pvmp3_get_side_info.cpp \ - src/pvmp3_get_scale_factors.cpp \ - src/pvmp3_mpeg2_get_scale_data.cpp \ - src/pvmp3_mpeg2_get_scale_factors.cpp \ - src/pvmp3_mpeg2_stereo_proc.cpp \ - src/pvmp3_huffman_decoding.cpp \ - src/pvmp3_huffman_parsing.cpp \ - src/pvmp3_tables.cpp \ - src/pvmp3_imdct_synth.cpp \ - src/pvmp3_mdct_6.cpp \ - src/pvmp3_dct_6.cpp \ - src/pvmp3_poly_phase_synthesis.cpp \ - src/pvmp3_equalizer.cpp \ - src/pvmp3_seek_synch.cpp \ - src/pvmp3_stereo_proc.cpp \ - src/pvmp3_reorder.cpp \ - -ifeq ($(TARGET_ARCH),arm) -LOCAL_SRC_FILES += \ - src/asm/pvmp3_polyphase_filter_window_gcc.s \ - src/asm/pvmp3_mdct_18_gcc.s \ - src/asm/pvmp3_dct_9_gcc.s \ - src/asm/pvmp3_dct_16_gcc.s -else -LOCAL_SRC_FILES += \ - src/pvmp3_polyphase_filter_window.cpp \ - src/pvmp3_mdct_18.cpp \ - src/pvmp3_dct_9.cpp \ - src/pvmp3_dct_16.cpp -endif - -LOCAL_C_INCLUDES := \ - $(LOCAL_PATH)/src \ - $(LOCAL_PATH)/include - -LOCAL_EXPORT_C_INCLUDES := \ - $(LOCAL_PATH)/src \ - $(LOCAL_PATH)/include - -LOCAL_CFLAGS := \ - -D"OSCL_UNUSED_ARG(x)=(void)(x)" - -LOCAL_CFLAGS += -Werror -LOCAL_CLANG := true -LOCAL_SANITIZE := signed-integer-overflow - -LOCAL_MODULE := libpvmp3dec - -LOCAL_ARM_MODE := arm - -include $(BUILD_STATIC_LIBRARY) diff --git a/sources/tremolo/Android.mk b/sources/tremolo/Android.mk deleted file mode 100644 index baded0bb..00000000 --- a/sources/tremolo/Android.mk +++ /dev/null @@ -1,44 +0,0 @@ -LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) - -LOCAL_SRC_FILES = \ - Tremolo/bitwise.c \ - Tremolo/codebook.c \ - Tremolo/dsp.c \ - Tremolo/floor0.c \ - Tremolo/floor1.c \ - Tremolo/floor_lookup.c \ - Tremolo/framing.c \ - Tremolo/info.c \ - Tremolo/mapping0.c \ - Tremolo/mdct.c \ - Tremolo/misc.c \ - Tremolo/res012.c \ - Tremolo/vorbisfile.c - -# Disable arm optimization which will cause the issue https://github.com/cocos2d/cocos2d-x/issues/17148 -# ifeq ($(TARGET_ARCH),arm) -# LOCAL_SRC_FILES += \ -# Tremolo/bitwiseARM.s \ -# Tremolo/dpen.s \ -# Tremolo/floor1ARM.s \ -# Tremolo/mdctARM.s -# LOCAL_CFLAGS += \ -# -D_ARM_ASSEM_ -# # Assembly code in asm_arm.h does not compile with Clang. -# LOCAL_CLANG_ASFLAGS_arm += \ -# -no-integrated-as -# else -LOCAL_CFLAGS += \ - -DONLY_C -# endif -LOCAL_CFLAGS+= -O2 - -LOCAL_C_INCLUDES:= \ - $(LOCAL_PATH)/Tremolo - -LOCAL_ARM_MODE := arm - -LOCAL_MODULE := libvorbisidec - -include $(BUILD_STATIC_LIBRARY) diff --git a/sources/tremolo/CleanSpec.mk b/sources/tremolo/CleanSpec.mk deleted file mode 100644 index b84e1b65..00000000 --- a/sources/tremolo/CleanSpec.mk +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2007 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -# If you don't need to do a full clean build but would like to touch -# a file or delete some intermediate files, add a clean step to the end -# of the list. These steps will only be run once, if they haven't been -# run before. -# -# E.g.: -# $(call add-clean-step, touch -c external/sqlite/sqlite3.h) -# $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libz_intermediates) -# -# Always use "touch -c" and "rm -f" or "rm -rf" to gracefully deal with -# files that are missing or have been moved. -# -# Use $(PRODUCT_OUT) to get to the "out/target/product/blah/" directory. -# Use $(OUT_DIR) to refer to the "out" directory. -# -# If you need to re-do something that's already mentioned, just copy -# the command and add it to the bottom of the list. E.g., if a change -# that you made last week required touching a file and a change you -# made today requires touching the same file, just copy the old -# touch step and add it to the end of the list. -# -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ - -# For example: -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/AndroidTests_intermediates) -#$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/core_intermediates) -#$(call add-clean-step, find $(OUT_DIR) -type f -name "IGTalkSession*" -print0 | xargs -0 rm -f) -#$(call add-clean-step, rm -rf $(PRODUCT_OUT)/data/*) - -# ************************************************ -# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST -# ************************************************ From d33565815c8e85659b4dbc07d8cfa3f01c9a6648 Mon Sep 17 00:00:00 2001 From: PatriceJiang <397136899@qq.com> Date: Tue, 26 May 2020 13:40:53 +0800 Subject: [PATCH 2/2] remove tiff --- CMakeLists.txt | 1 + android/CMakeLists.txt | 11 - android/arm64-v8a/include/tiff/tiff.h | 681 -------------------- android/arm64-v8a/include/tiff/tiffconf.h | 128 ---- android/arm64-v8a/include/tiff/tiffio.h | 557 ---------------- android/arm64-v8a/include/tiff/tiffvers.h | 9 - android/arm64-v8a/libtiff.a | Bin 720948 -> 0 bytes android/armeabi-v7a/include/tiff/tiff.h | 681 -------------------- android/armeabi-v7a/include/tiff/tiffconf.h | 128 ---- android/armeabi-v7a/include/tiff/tiffio.h | 557 ---------------- android/armeabi-v7a/include/tiff/tiffvers.h | 9 - android/armeabi-v7a/libtiff.a | Bin 392550 -> 0 bytes android/x86/include/tiff/tiff.h | 681 -------------------- android/x86/include/tiff/tiffconf.h | 128 ---- android/x86/include/tiff/tiffio.h | 557 ---------------- android/x86/include/tiff/tiffvers.h | 9 - android/x86/libtiff.a | Bin 596514 -> 0 bytes ios/CMakeLists.txt | 20 - ios/include/tiff/tiff.h | 678 ------------------- ios/include/tiff/tiffconf-32.h | 128 ---- ios/include/tiff/tiffconf-64.h | 128 ---- ios/include/tiff/tiffconf.h | 5 - ios/include/tiff/tiffio.h | 557 ---------------- ios/include/tiff/tiffvers.h | 9 - ios/libs/libtiff.a | Bin 1795304 -> 0 bytes mac/CMakeLists.txt | 35 - mac/include/tiff/tiff.h | 681 -------------------- mac/include/tiff/tiffconf.h | 128 ---- mac/include/tiff/tiffio.h | 557 ---------------- mac/include/tiff/tiffvers.h | 9 - mac/libs/libtiff.a | Bin 474600 -> 0 bytes sources/CMakeLists.txt | 3 - sources/SocketRocket/CMakeLists.txt | 38 +- versions.txt | 6 - win32/CMakeLists.txt | 47 +- win32/include/tiff/tiff.h | 678 ------------------- win32/include/tiff/tiffconf.h | 160 ----- win32/include/tiff/tiffio.h | 557 ---------------- win32/include/tiff/tiffvers.h | 9 - win32/libs/libtiff-2015.lib | Bin 1774542 -> 0 bytes win32/libs/libtiff.dll | Bin 451072 -> 0 bytes win32/libs/libtiff.lib | Bin 614450 -> 0 bytes 42 files changed, 21 insertions(+), 8549 deletions(-) delete mode 100644 android/arm64-v8a/include/tiff/tiff.h delete mode 100644 android/arm64-v8a/include/tiff/tiffconf.h delete mode 100644 android/arm64-v8a/include/tiff/tiffio.h delete mode 100644 android/arm64-v8a/include/tiff/tiffvers.h delete mode 100644 android/arm64-v8a/libtiff.a delete mode 100644 android/armeabi-v7a/include/tiff/tiff.h delete mode 100644 android/armeabi-v7a/include/tiff/tiffconf.h delete mode 100644 android/armeabi-v7a/include/tiff/tiffio.h delete mode 100644 android/armeabi-v7a/include/tiff/tiffvers.h delete mode 100644 android/armeabi-v7a/libtiff.a delete mode 100644 android/x86/include/tiff/tiff.h delete mode 100644 android/x86/include/tiff/tiffconf.h delete mode 100644 android/x86/include/tiff/tiffio.h delete mode 100644 android/x86/include/tiff/tiffvers.h delete mode 100644 android/x86/libtiff.a delete mode 100644 ios/include/tiff/tiff.h delete mode 100644 ios/include/tiff/tiffconf-32.h delete mode 100644 ios/include/tiff/tiffconf-64.h delete mode 100644 ios/include/tiff/tiffconf.h delete mode 100644 ios/include/tiff/tiffio.h delete mode 100644 ios/include/tiff/tiffvers.h delete mode 100644 ios/libs/libtiff.a delete mode 100644 mac/include/tiff/tiff.h delete mode 100644 mac/include/tiff/tiffconf.h delete mode 100644 mac/include/tiff/tiffio.h delete mode 100644 mac/include/tiff/tiffvers.h delete mode 100644 mac/libs/libtiff.a delete mode 100644 win32/include/tiff/tiff.h delete mode 100644 win32/include/tiff/tiffconf.h delete mode 100644 win32/include/tiff/tiffio.h delete mode 100644 win32/include/tiff/tiffvers.h delete mode 100644 win32/libs/libtiff-2015.lib delete mode 100644 win32/libs/libtiff.dll delete mode 100644 win32/libs/libtiff.lib diff --git a/CMakeLists.txt b/CMakeLists.txt index 9738f517..0f408c74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ set(CC_EXTERNAL_LIBS) set(CC_EXTERNAL_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/sources) +set(CC_EXTERNAL_PRIVATE_INCLUDES) include(${CMAKE_CURRENT_LIST_DIR}/cmake/CocosExternalConfig.cmake) include(${CMAKE_CURRENT_LIST_DIR}/sources/CMakeLists.txt) diff --git a/android/CMakeLists.txt b/android/CMakeLists.txt index d5e91a61..8005ae49 100644 --- a/android/CMakeLists.txt +++ b/android/CMakeLists.txt @@ -24,11 +24,6 @@ set_target_properties(ssl PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/libssl.a ) -add_library(tiff STATIC IMPORTED GLOBAL) -set_target_properties(tiff PROPERTIES - IMPORTED_LOCATION ${platform_spec_path}/libtiff.a -) - add_library(uv STATIC IMPORTED GLOBAL) set_target_properties(uv PROPERTIES IMPORTED_LOCATION ${platform_spec_path}/libuv.a @@ -97,12 +92,6 @@ if(USE_SOCKET) ) endif() -if(USE_TIFF) - list(APPEND CC_EXTERNAL_LIBS - tiff - ) -endif() - if(USE_SE_V8 AND USE_V8_DEBUGGER) list(APPEND CC_EXTERNAL_LIBS v8_inspector diff --git a/android/arm64-v8a/include/tiff/tiff.h b/android/arm64-v8a/include/tiff/tiff.h deleted file mode 100644 index bc46acd0..00000000 --- a/android/arm64-v8a/include/tiff/tiff.h +++ /dev/null @@ -1,681 +0,0 @@ -/* $Id: tiff.h,v 1.69 2014-04-02 17:23:06 fwarmerdam Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFF_ -#define _TIFF_ - -#include "tiffconf.h" - -/* - * Tag Image File Format (TIFF) - * - * Based on Rev 6.0 from: - * Developer's Desk - * Aldus Corporation - * 411 First Ave. South - * Suite 200 - * Seattle, WA 98104 - * 206-622-5500 - * - * (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf) - * - * For BigTIFF design notes see the following links - * http://www.remotesensing.org/libtiff/bigtiffdesign.html - * http://www.awaresystems.be/imaging/tiff/bigtiff.html - */ - -#define TIFF_VERSION_CLASSIC 42 -#define TIFF_VERSION_BIG 43 - -#define TIFF_BIGENDIAN 0x4d4d -#define TIFF_LITTLEENDIAN 0x4949 -#define MDI_LITTLEENDIAN 0x5045 -#define MDI_BIGENDIAN 0x4550 - -/* - * Intrinsic data types required by the file format: - * - * 8-bit quantities int8/uint8 - * 16-bit quantities int16/uint16 - * 32-bit quantities int32/uint32 - * 64-bit quantities int64/uint64 - * strings unsigned char* - */ - -typedef TIFF_INT8_T int8; -typedef TIFF_UINT8_T uint8; - -typedef TIFF_INT16_T int16; -typedef TIFF_UINT16_T uint16; - -typedef TIFF_INT32_T int32; -typedef TIFF_UINT32_T uint32; - -typedef TIFF_INT64_T int64; -typedef TIFF_UINT64_T uint64; - -/* - * Some types as promoted in a variable argument list - * We use uint16_vap rather then directly using int, because this way - * we document the type we actually want to pass through, conceptually, - * rather then confusing the issue by merely stating the type it gets - * promoted to - */ - -typedef int uint16_vap; - -/* - * TIFF header. - */ -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ -} TIFFHeaderCommon; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint32 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderClassic; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint16 tiff_offsetsize; /* size of offsets, should be 8 */ - uint16 tiff_unused; /* unused word, should be 0 */ - uint64 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderBig; - - -/* - * NB: In the comments below, - * - items marked with a + are obsoleted by revision 5.0, - * - items marked with a ! are introduced in revision 6.0. - * - items marked with a % are introduced post revision 6.0. - * - items marked with a $ are obsoleted by revision 6.0. - * - items marked with a & are introduced by Adobe DNG specification. - */ - -/* - * Tag data type information. - * - * Note: RATIONALs are the ratio of two 32-bit integer values. - */ -typedef enum { - TIFF_NOTYPE = 0, /* placeholder */ - TIFF_BYTE = 1, /* 8-bit unsigned integer */ - TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ - TIFF_SHORT = 3, /* 16-bit unsigned integer */ - TIFF_LONG = 4, /* 32-bit unsigned integer */ - TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ - TIFF_SBYTE = 6, /* !8-bit signed integer */ - TIFF_UNDEFINED = 7, /* !8-bit untyped data */ - TIFF_SSHORT = 8, /* !16-bit signed integer */ - TIFF_SLONG = 9, /* !32-bit signed integer */ - TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ - TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ - TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ - TIFF_IFD = 13, /* %32-bit unsigned integer (offset) */ - TIFF_LONG8 = 16, /* BigTIFF 64-bit unsigned integer */ - TIFF_SLONG8 = 17, /* BigTIFF 64-bit signed integer */ - TIFF_IFD8 = 18 /* BigTIFF 64-bit unsigned integer (offset) */ -} TIFFDataType; - -/* - * TIFF Tag Definitions. - */ -#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ -#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ -#define FILETYPE_PAGE 0x2 /* one page of many */ -#define FILETYPE_MASK 0x4 /* transparency mask */ -#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ -#define OFILETYPE_IMAGE 1 /* full resolution image data */ -#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ -#define OFILETYPE_PAGE 3 /* one page of many */ -#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ -#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ -#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ -#define TIFFTAG_COMPRESSION 259 /* data compression technique */ -#define COMPRESSION_NONE 1 /* dump mode */ -#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ -#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ -#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ -#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ -#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ -#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ -#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ -#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ -#define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ -#define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ -#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ -#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ -#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ -#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ -/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_CFA 32803 /* color filter array */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -#define TIFFTAG_CFAREPEATPATTERNDIM 33421 /* dimensions of CFA pattern */ -#define TIFFTAG_CFAPATTERN 33422 /* color filter array pattern */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/arm64-v8a/include/tiff/tiffconf.h b/android/arm64-v8a/include/tiff/tiffconf.h deleted file mode 100644 index 2d1c0c45..00000000 --- a/android/arm64-v8a/include/tiff/tiffconf.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed long - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_MSB2LSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/android/arm64-v8a/include/tiff/tiffio.h b/android/arm64-v8a/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/android/arm64-v8a/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/arm64-v8a/include/tiff/tiffvers.h b/android/arm64-v8a/include/tiff/tiffvers.h deleted file mode 100644 index e965814b..00000000 --- a/android/arm64-v8a/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.6\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20150912 diff --git a/android/arm64-v8a/libtiff.a b/android/arm64-v8a/libtiff.a deleted file mode 100644 index 25c4268e0a316141399fb09b0be78fb1e8d46253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 720948 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.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�eO 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

9X@bF1V|=(ZVTbxa3Q-;I7^_3%BX@`Q_@>_NaQ* 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 PO4xFA(*s9wLHz#<{i}ri diff --git a/android/armeabi-v7a/include/tiff/tiff.h b/android/armeabi-v7a/include/tiff/tiff.h deleted file mode 100644 index bc46acd0..00000000 --- a/android/armeabi-v7a/include/tiff/tiff.h +++ /dev/null @@ -1,681 +0,0 @@ -/* $Id: tiff.h,v 1.69 2014-04-02 17:23:06 fwarmerdam Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFF_ -#define _TIFF_ - -#include "tiffconf.h" - -/* - * Tag Image File Format (TIFF) - * - * Based on Rev 6.0 from: - * Developer's Desk - * Aldus Corporation - * 411 First Ave. South - * Suite 200 - * Seattle, WA 98104 - * 206-622-5500 - * - * (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf) - * - * For BigTIFF design notes see the following links - * http://www.remotesensing.org/libtiff/bigtiffdesign.html - * http://www.awaresystems.be/imaging/tiff/bigtiff.html - */ - -#define TIFF_VERSION_CLASSIC 42 -#define TIFF_VERSION_BIG 43 - -#define TIFF_BIGENDIAN 0x4d4d -#define TIFF_LITTLEENDIAN 0x4949 -#define MDI_LITTLEENDIAN 0x5045 -#define MDI_BIGENDIAN 0x4550 - -/* - * Intrinsic data types required by the file format: - * - * 8-bit quantities int8/uint8 - * 16-bit quantities int16/uint16 - * 32-bit quantities int32/uint32 - * 64-bit quantities int64/uint64 - * strings unsigned char* - */ - -typedef TIFF_INT8_T int8; -typedef TIFF_UINT8_T uint8; - -typedef TIFF_INT16_T int16; -typedef TIFF_UINT16_T uint16; - -typedef TIFF_INT32_T int32; -typedef TIFF_UINT32_T uint32; - -typedef TIFF_INT64_T int64; -typedef TIFF_UINT64_T uint64; - -/* - * Some types as promoted in a variable argument list - * We use uint16_vap rather then directly using int, because this way - * we document the type we actually want to pass through, conceptually, - * rather then confusing the issue by merely stating the type it gets - * promoted to - */ - -typedef int uint16_vap; - -/* - * TIFF header. - */ -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ -} TIFFHeaderCommon; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint32 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderClassic; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint16 tiff_offsetsize; /* size of offsets, should be 8 */ - uint16 tiff_unused; /* unused word, should be 0 */ - uint64 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderBig; - - -/* - * NB: In the comments below, - * - items marked with a + are obsoleted by revision 5.0, - * - items marked with a ! are introduced in revision 6.0. - * - items marked with a % are introduced post revision 6.0. - * - items marked with a $ are obsoleted by revision 6.0. - * - items marked with a & are introduced by Adobe DNG specification. - */ - -/* - * Tag data type information. - * - * Note: RATIONALs are the ratio of two 32-bit integer values. - */ -typedef enum { - TIFF_NOTYPE = 0, /* placeholder */ - TIFF_BYTE = 1, /* 8-bit unsigned integer */ - TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ - TIFF_SHORT = 3, /* 16-bit unsigned integer */ - TIFF_LONG = 4, /* 32-bit unsigned integer */ - TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ - TIFF_SBYTE = 6, /* !8-bit signed integer */ - TIFF_UNDEFINED = 7, /* !8-bit untyped data */ - TIFF_SSHORT = 8, /* !16-bit signed integer */ - TIFF_SLONG = 9, /* !32-bit signed integer */ - TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ - TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ - TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ - TIFF_IFD = 13, /* %32-bit unsigned integer (offset) */ - TIFF_LONG8 = 16, /* BigTIFF 64-bit unsigned integer */ - TIFF_SLONG8 = 17, /* BigTIFF 64-bit signed integer */ - TIFF_IFD8 = 18 /* BigTIFF 64-bit unsigned integer (offset) */ -} TIFFDataType; - -/* - * TIFF Tag Definitions. - */ -#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ -#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ -#define FILETYPE_PAGE 0x2 /* one page of many */ -#define FILETYPE_MASK 0x4 /* transparency mask */ -#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ -#define OFILETYPE_IMAGE 1 /* full resolution image data */ -#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ -#define OFILETYPE_PAGE 3 /* one page of many */ -#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ -#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ -#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ -#define TIFFTAG_COMPRESSION 259 /* data compression technique */ -#define COMPRESSION_NONE 1 /* dump mode */ -#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ -#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ -#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ -#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ -#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ -#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ -#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ -#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ -#define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ -#define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ -#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ -#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ -#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ -#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ -/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_CFA 32803 /* color filter array */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -#define TIFFTAG_CFAREPEATPATTERNDIM 33421 /* dimensions of CFA pattern */ -#define TIFFTAG_CFAPATTERN 33422 /* color filter array pattern */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/armeabi-v7a/include/tiff/tiffconf.h b/android/armeabi-v7a/include/tiff/tiffconf.h deleted file mode 100644 index 262db339..00000000 --- a/android/armeabi-v7a/include/tiff/tiffconf.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed int - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_MSB2LSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/android/armeabi-v7a/include/tiff/tiffio.h b/android/armeabi-v7a/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/android/armeabi-v7a/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/armeabi-v7a/include/tiff/tiffvers.h b/android/armeabi-v7a/include/tiff/tiffvers.h deleted file mode 100644 index e965814b..00000000 --- a/android/armeabi-v7a/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.6\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20150912 diff --git a/android/armeabi-v7a/libtiff.a b/android/armeabi-v7a/libtiff.a deleted file mode 100644 index 609baf8c4e531c941cbb8494d8a8c99eb8baa4d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 392550 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 VU0nft6=$*t;VH&LKF)Ua{{R~ebd&%9 diff --git a/android/x86/include/tiff/tiff.h b/android/x86/include/tiff/tiff.h deleted file mode 100644 index bc46acd0..00000000 --- a/android/x86/include/tiff/tiff.h +++ /dev/null @@ -1,681 +0,0 @@ -/* $Id: tiff.h,v 1.69 2014-04-02 17:23:06 fwarmerdam Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFF_ -#define _TIFF_ - -#include "tiffconf.h" - -/* - * Tag Image File Format (TIFF) - * - * Based on Rev 6.0 from: - * Developer's Desk - * Aldus Corporation - * 411 First Ave. South - * Suite 200 - * Seattle, WA 98104 - * 206-622-5500 - * - * (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf) - * - * For BigTIFF design notes see the following links - * http://www.remotesensing.org/libtiff/bigtiffdesign.html - * http://www.awaresystems.be/imaging/tiff/bigtiff.html - */ - -#define TIFF_VERSION_CLASSIC 42 -#define TIFF_VERSION_BIG 43 - -#define TIFF_BIGENDIAN 0x4d4d -#define TIFF_LITTLEENDIAN 0x4949 -#define MDI_LITTLEENDIAN 0x5045 -#define MDI_BIGENDIAN 0x4550 - -/* - * Intrinsic data types required by the file format: - * - * 8-bit quantities int8/uint8 - * 16-bit quantities int16/uint16 - * 32-bit quantities int32/uint32 - * 64-bit quantities int64/uint64 - * strings unsigned char* - */ - -typedef TIFF_INT8_T int8; -typedef TIFF_UINT8_T uint8; - -typedef TIFF_INT16_T int16; -typedef TIFF_UINT16_T uint16; - -typedef TIFF_INT32_T int32; -typedef TIFF_UINT32_T uint32; - -typedef TIFF_INT64_T int64; -typedef TIFF_UINT64_T uint64; - -/* - * Some types as promoted in a variable argument list - * We use uint16_vap rather then directly using int, because this way - * we document the type we actually want to pass through, conceptually, - * rather then confusing the issue by merely stating the type it gets - * promoted to - */ - -typedef int uint16_vap; - -/* - * TIFF header. - */ -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ -} TIFFHeaderCommon; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint32 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderClassic; -typedef struct { - uint16 tiff_magic; /* magic number (defines byte order) */ - uint16 tiff_version; /* TIFF version number */ - uint16 tiff_offsetsize; /* size of offsets, should be 8 */ - uint16 tiff_unused; /* unused word, should be 0 */ - uint64 tiff_diroff; /* byte offset to first directory */ -} TIFFHeaderBig; - - -/* - * NB: In the comments below, - * - items marked with a + are obsoleted by revision 5.0, - * - items marked with a ! are introduced in revision 6.0. - * - items marked with a % are introduced post revision 6.0. - * - items marked with a $ are obsoleted by revision 6.0. - * - items marked with a & are introduced by Adobe DNG specification. - */ - -/* - * Tag data type information. - * - * Note: RATIONALs are the ratio of two 32-bit integer values. - */ -typedef enum { - TIFF_NOTYPE = 0, /* placeholder */ - TIFF_BYTE = 1, /* 8-bit unsigned integer */ - TIFF_ASCII = 2, /* 8-bit bytes w/ last byte null */ - TIFF_SHORT = 3, /* 16-bit unsigned integer */ - TIFF_LONG = 4, /* 32-bit unsigned integer */ - TIFF_RATIONAL = 5, /* 64-bit unsigned fraction */ - TIFF_SBYTE = 6, /* !8-bit signed integer */ - TIFF_UNDEFINED = 7, /* !8-bit untyped data */ - TIFF_SSHORT = 8, /* !16-bit signed integer */ - TIFF_SLONG = 9, /* !32-bit signed integer */ - TIFF_SRATIONAL = 10, /* !64-bit signed fraction */ - TIFF_FLOAT = 11, /* !32-bit IEEE floating point */ - TIFF_DOUBLE = 12, /* !64-bit IEEE floating point */ - TIFF_IFD = 13, /* %32-bit unsigned integer (offset) */ - TIFF_LONG8 = 16, /* BigTIFF 64-bit unsigned integer */ - TIFF_SLONG8 = 17, /* BigTIFF 64-bit signed integer */ - TIFF_IFD8 = 18 /* BigTIFF 64-bit unsigned integer (offset) */ -} TIFFDataType; - -/* - * TIFF Tag Definitions. - */ -#define TIFFTAG_SUBFILETYPE 254 /* subfile data descriptor */ -#define FILETYPE_REDUCEDIMAGE 0x1 /* reduced resolution version */ -#define FILETYPE_PAGE 0x2 /* one page of many */ -#define FILETYPE_MASK 0x4 /* transparency mask */ -#define TIFFTAG_OSUBFILETYPE 255 /* +kind of data in subfile */ -#define OFILETYPE_IMAGE 1 /* full resolution image data */ -#define OFILETYPE_REDUCEDIMAGE 2 /* reduced size image data */ -#define OFILETYPE_PAGE 3 /* one page of many */ -#define TIFFTAG_IMAGEWIDTH 256 /* image width in pixels */ -#define TIFFTAG_IMAGELENGTH 257 /* image height in pixels */ -#define TIFFTAG_BITSPERSAMPLE 258 /* bits per channel (sample) */ -#define TIFFTAG_COMPRESSION 259 /* data compression technique */ -#define COMPRESSION_NONE 1 /* dump mode */ -#define COMPRESSION_CCITTRLE 2 /* CCITT modified Huffman RLE */ -#define COMPRESSION_CCITTFAX3 3 /* CCITT Group 3 fax encoding */ -#define COMPRESSION_CCITT_T4 3 /* CCITT T.4 (TIFF 6 name) */ -#define COMPRESSION_CCITTFAX4 4 /* CCITT Group 4 fax encoding */ -#define COMPRESSION_CCITT_T6 4 /* CCITT T.6 (TIFF 6 name) */ -#define COMPRESSION_LZW 5 /* Lempel-Ziv & Welch */ -#define COMPRESSION_OJPEG 6 /* !6.0 JPEG */ -#define COMPRESSION_JPEG 7 /* %JPEG DCT compression */ -#define COMPRESSION_T85 9 /* !TIFF/FX T.85 JBIG compression */ -#define COMPRESSION_T43 10 /* !TIFF/FX T.43 colour by layered JBIG compression */ -#define COMPRESSION_NEXT 32766 /* NeXT 2-bit RLE */ -#define COMPRESSION_CCITTRLEW 32771 /* #1 w/ word alignment */ -#define COMPRESSION_PACKBITS 32773 /* Macintosh RLE */ -#define COMPRESSION_THUNDERSCAN 32809 /* ThunderScan RLE */ -/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_CFA 32803 /* color filter array */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -#define TIFFTAG_CFAREPEATPATTERNDIM 33421 /* dimensions of CFA pattern */ -#define TIFFTAG_CFAPATTERN 33422 /* color filter array pattern */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/x86/include/tiff/tiffconf.h b/android/x86/include/tiff/tiffconf.h deleted file mode 100644 index 6830ce5b..00000000 --- a/android/x86/include/tiff/tiffconf.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed int - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/android/x86/include/tiff/tiffio.h b/android/x86/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/android/x86/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/android/x86/include/tiff/tiffvers.h b/android/x86/include/tiff/tiffvers.h deleted file mode 100644 index e965814b..00000000 --- a/android/x86/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.6\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20150912 diff --git a/android/x86/libtiff.a b/android/x86/libtiff.a deleted file mode 100644 index 53a4764a741a62f62de144000b34bfe3351f8316..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596514 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'vb7M2$&cpw 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 z zlJql?%-sAJ@O{^Zfn*DuMzo(mto{6>=C*2=G^PBcKF#eL_NIYx^bcO_ zR;sqWt>`S(^}T&*MX%!8K5W+xe~iU2CpYqU`{C$)Nb|Zj+)Ing<;)n>1u?=x0c;oo zkr%d5d8|4%)fby}&i3uz^5dJ!kDHIrKe}b%-#0hG-q-vSTj(u}Z&`TE7!mG07JkMT zK9auf^*(+th*gN@e;=edJ7(i5X-*%w1XohWkX(6g^xlVoYIu&s{}4WoZ6DWlpz*fa zOgxf7e~g#iW_32gz*sglgQz2y6`X}j2>B5o&)TufNwHa!2-?4#LKs4ET+L9<)$aWk zqt@kI9exJu2liViA-e>nfJR>A_d&DV#K*6|d4^OQ`-G&^SR9zyGQ`Ndx_t2e`~xKi z%x%Sx32Ozm(;?mfXJx=S5nnEr$YHv%4dp88kb5qp!bblMA3}k=G7Hb=CKh^uik|Sp9dElc(3a}Rm-h!Q?+1-O2TQ1ph zmuE}4ce5`y{0z7G`M-9tY(8FoV$0I_=H9%wH{W<-b6?((%{Ruk42k^e>YUuomxP~@ zoBp)TnYo)k+WhRg{eAoxxMk9oa?h6e-px6=Tjr;QpW$|2QQfle_?D$7HluYn|ADlQ zgJdr#n~&cZ-~2mCc7EJ^{F2ST&--ZeB=$va_kElHLQOCq%31fzKE9*M|8=ZwQao06 zjJKN@m>Bki|2#bMZ2qUviQ#%0%N~QdA``O7iZ%EUlv4)xH$O)PvHuhk2lt<1;y8ky z`xPdk$L@)I(0MC*tIuFCI19~|8LR(-5yRDtP#AO?2p!bf@AyT3^|zP<*tiYsXHUgG zXkESkV0h2_P#i0HJM?SFH>>+lFk5YSP}97e^KTTJolnyWa<|Me^6Jksw#{aIKt_Kkv{kKo81Q&wHi5$P2w64EMb7%F)OxxaV{$kLQAu zyzqc8IDrqXZ4hPtGhD9%4FfItfd;JDfd(w$H4TSa@@pE7G45#ind5j)T=!1j2;_%s z@}D6V5HvnRSi1ua2buE|<~+){f$%fOux~*BH~>atZPQQ0<{jH9B)2E>`|w}RiM*44 z6jH;@&lDQAMX~G~IM?%4(2tP?5A5c~Z-@Zo#kDCsaMqeuxgY(YbCP;q_yBgekSkU{ z2cr4}TT{qKtk;z-<`MC{P#NBHkXz3`qx$I(#N~SDDP?N*OlrxWTn;@{x&IV`Z<~XS z${eF5zrKQj6AYZdKE{rOoZMlw@U|&JMp?-+I)!|W4)6Woa?cCBN4-);{IsBDbUkI% zqGaUsKIl&cb{xzP>^KG=7ohL>Fu!KU0N~G*q~7lvttBOMp*;dS-pBu%9S2*?qihm{ zlyv?mMpmqC>#;MG4(?Tle4f?vc|^GWrZMa@Qwe zJZ%!=X%qOwcseS^(jN%@oSMsp5h*BGsEHx>w#ODWI5w7fzMjzvTp8XXIhc8lq$A)3({_1H0(HMkO3YSTl zgC7|r{lxt_jMSrEmb}6{f@#@hNs#RwW9xqC6N*`&on^nD?T$x2iDu^F!J&-&@U4#z zs|u;& zHL@2B*&D{l0A5E?%y{32?_9>*WW$hrP;z#zvc7V^qs`F55+4fF`<>OU{SI$~&%%CZ zcSPwmM~<)ornAkl69Vr6u$GRn5B1GNTVeK>>h!qr8n#RV>UhlSUUsPA7RF$$an%V z$JGn7*ZM9*##mK6f1hVJUIRQKrr&*$cfx-h9(gbS4YcGiv|?_|m&IO%mdT01vK;E; zuqWOR>}LPt`L8Y?gJYPNE% zP(1!1@_AZYZtj)}BM*DQEfr`!xt7X^T9r_n|LYR0rc@u**D8p+Bk}Ur{%*)N;;$S( z?Whl9-w-D59II{aTr3n8^-W|JZzx_gs;i@UQELlqu>~6!cUdis;s~yt)vzo(JjpVa zx5H$dfm7G5ceO7M;@XBL9MWyZk?%z$ZM3wtHwr6o!e|_<$*D`vEMsIyS$G>_RG%dG z2)m#W;!@u;Vz>xv8dB#mNy&Y@`z=)``L}XqOlD+ zo3Q!DODF6yjYQLV;&v}tHC#C%)I)J;^Rf=589LgqdB>^UP=^Cbof~nY`X96&Cv~eR z-()?{0OF`;MfZFDvvnC0@3YOW_75xb=imn8YFL%qmVB+P_-5S1{BSq&pF>C7eN1C? zAz_P7QmOQ3i9Fo$(9Ph#6nXAS%Ciw@FA^87m;dZMsdO(J6E8%*DG{7{O7KRlwh23U zP}>9;5L%o7akp;)imu0WLnr)G@*&TY(e?wK;QuuE{Koz>g@3)s1wBOg`&8T!#@RI7 zvQj4h(9D%WSSz&DX6UAr@fAA$=EQh;-$x;qAi5`6o?VV;;~Z@xFc(Sl6dvtZoC$P6xr9Ge|K9lZzk?l`iD7udamzAgaWc$CR@a`Xsm+Qt8lRWT$cnUo7 zndielIO?J%@j0mdJAg7z;eR+7KdC+E>+8y=iGdZ+mzKA<#@Q^t1^bT+{Z@rWo~ctS zrSdd+G}z<3Sq$?zxze+c+;wAqykegQDP zZYkZX0;3l&b#8{J^t%C1MHnh-g5GMta}lQQ4e56Pz7=7p-3oXy;1vi<`+5aN9^mbO zsn3yrLc1SI9@#Z5kZM?yz= zd5td`4+7@4HXA<=YW*C1x?cRK3;sR1#_O_ z-PRKn%<CZg`YY>wrR+@N)%oe9&It-3sR3hGzq4w@Ev;CO^_>M_8Y|U>xCjN$JV=1$~c* z$`PL$9@-J+J)GJR-j%cYHN+ z9MgUr+l_ED(=i!#DEP~SGjJ!if~iuH0ivAKXlG8-Ed=Z>;3Wu1ht6IneH5~RJ`%q} zzet|-$-v~y`6c68c^5d-53BS`(O%3yl0MRfZu3~2xgb2o5N9aTss@+a!u%5qaVKZS zb#hM57%%m1GqCt`KFuf*HwqXTlbrS`V|*s=4Wo}vHwQl3kMoKTiQi?sPu@Y!bgnl{ z@1-A5_f?)J?;m6OhbmpSOR^6U7``bE|6FT)xywp~%Pn!1Dh} zANlyK;W^tdEcmn&wuJr{VaJ9(`ssf9d2-y*P8jW^(M}k@{d%u~-02rUpA+@*jxvl} z=tJHc>0fIYKcbKR@GgDymrV3+FXUcLAN^n>ebk@xx)<_&mp%#t}5zYTsWSC7b* zt<7ysU6MgQs5h$!b>Fu`!DhCu6K2_AK+Sz{ML%xKXHdtIl%2`G6`b{>St(_`EamwY znu$^s5=O~dI#^_jtH73y03QFv;g?e$hH0U3cvvK3srChVHdBIIeI~|^bsn5`Qi?`! zkX&5ZB&5j1vv)9FMn8t=fs zCuon7E_4;V)=|;&^bgWyAm!EMZpvfFBv2-pf-Uc~eXY6Pf z7*mPumSE001P7=KZ zE_&wxS@X9OVK;xf0Q72N@HIWIKW_e(xa!MzO^@ai-1N2s*6(XbR?{1w#NRH^W1F(R z-1}&H+#9*+9fWLOM7nmG-dRcXCSols1rq6DnYZbEgs_|5E)>MITRTnf9YnbCC zX{YhtK!m$pR-xPlh-10L(e*eVd?(ODM-=aPfJ3M0l_lZrg0RFp9*Jh-eJcr%XQaeC zo+Lah(TU}vaTh5Zdb(T;n}mA2g?g~Ru^wN*PuJrQsD!&7v}qMXx^|i#&-c08<$V`D zKK*EV^-1;M;aBmFNDVW5_cL4O5M*c2#(fdgfz4syfU1V4}P47RF=nc5&T?$;y zAD@Ta^?d*vE%7cXiQc!8`d@m!yw9BcUFM?qu%ZV~xYy2iWWWfPOZUShdWE28A)fSx z2f*t z+;Xc!J#@dyMVhY1v*0D6ok8zIO$@%K_cV~)^yYycwvVD+u${H(O-rJ;eVBT0rD$q; zRY~-=gPx`6p-b5GcuoX=_F7YjPD1{*V?F4GB++}sRbP%VUEklScBVY(>Os$~bHlRu z`)yKxc@7)-E15w#;?T9@$8aG5xW51oj|H~V^!S{n^DuEFJEzO(G`=%uSohOB;0@?X zB3=jA1IaCqCs5x{-Q$G|RF1R+9P- z+oF<^F%vDi)1OIuLM^;?cxX7NJ_JR_h4jNJ{U0hdyJ?N+P(=Z3`@D+K`mf~S z2oPTlLC48u+PR_?bq{$$ z>hisZyrKO5fK5Q2r%5<@RVU*f@&+%n(PlcufSN+^K_ON%k_rJAO4`h^nea^)w-v?} z=b_2*&_stU8YMk=p-nFyDs|G(^mCUE(dJ@E%7?31U8Jhxp@4%9QdtS4YMiveq|(ie zH-prtFbWjJzuHxwn)7$z_k8$6>l5>Q=nCLJ^d2PJ_;O7}ZpDjrsN(8UdGZ4ST*I?J zH{hyG96x|Y^AS(zR!1D?+T!THiNaP5?`opH{gAAaVTh9<&xv(C1 z$1zrpj&2m$X`Lw*wj2}Bp@6=>90NgFma8y{@O>ieAwrnUaGW?jUZSig%J&mcvTde_ zvbwQvV?wfXf>9)w_cbRZUzC{p%D&2k;x_LJr)>?3!Gxj6`s=cXeB3m9IbpjP3eOeH@ zDMAy)?Aa5IJ%C(hkFN~Gf}>^Sf|XGA2{nQ{szwb<;JMMI!=ezf6A++FqMb_5Nl3SJ z>h|rN{BhfC5SB87xeN6CQpxqF<+{fx0Q2s7P%4pCfvQS?()Zd8c&K7jX=whTihL|W zzlEF-!X(KryH2-rj`5<~;Xnc=WDgKzMa}MW6Of$=t8ZaKLIRbAEo@aZk-2dyd&m86 zfm2!#y^c`qT|lbw-3q{{HuR%1VH)uz&+C}9Q01Ds$Qz>8)Wr$o_S3(bTOVcawi`V8 zyCZweohH?6{{>NKs+p0ORTE{QA6}qH=suCvf5Jlp3Rn0$6uW#nb^@qNFz78%X& zzYzJjYn-`r7c9ipF=A(_2l=mL-&1p1f_z+Bgy!SDC&8j}RuxtC&24ibpq4l^+9|f+ zb?yb7iej-EkB9Y^trUGqv`*$lvVlsNfS-9c7fI9zGOlqgdqT7uN7}0%#qVh8L7=yA z`MFI9(;HktU8-(AoH^omW@OPhy8jdNb>F506i4X&9fN1y{#zVk&SWcz?EtZUb&Q^@ zUE=DQ=!xAcn4UA3rp!GLsnLppjk{J2$8;Gg$AW@Q)f3>YB`o$x+*kGenj-7z-X*-) zGw}3|%-)Y>feI)DcRHMY!R7>cxvp?@=gLkWa&eqtS^=)TiOBt4%jammR`OgDm1V69l18lwPP(u=rf z=IbbIsIXhUozi{^{|>=^oj$V8UgfN7KS!z&Iogl;KeW)PjzWlh%qisg$kE`8qFpW6 zGRxD}&_>MW0L1(gt!?|n%<^GStNk5@aW3XEacu5yk=Moafl16{*D&QqJ5S?dFy&DlB_r$zNsmWUh|h z|24#!J=u3r%6O!~Vvy@zj;nBpW{;R*uypb*p=3v|#*V3rX!mPK#crFwYG3kpJ6k+b zWZIpQj}&|HjDbAT1atT~%O+6@b=9ou%#+X%TGTQ(M}*!uIJvW!JNxvxvBo>OIf-U* zUuSN-0Ayt~8!!N!$y7+h8@kv@b0pID9*Ch08(dFqP{!t&GjX2uH}7-T0HH{A-=gOw z5kw|$%j^vj1seG%de1&khPFp`fp<+?i;cD|I@qbhJ1E<17}(r4b=fuT-*4pofy z2G@q4`XzWWf+1B2nvV|5L0hTyHu5=0ViV2P%n064bV%+_?V36K#YiX~?DfTqd)fEw zF$aboWA@Is!4nc{oOZT5+duuSPX1w(s3eXaxca;vr!i0GYJ>sMcDm`~$G zFect$HRN#p@i-b{+4XUF=wq1gzXa46imk)H+&V=FQY0Tm&x>O^VgqoIESoJxIwTPE zUw?w$d_gtTjA3MPAaM0CHk8!C3*OehT2mjbse>}j*IZ)uwB=rnZek(hFk}%Y3HyG| z09fn$H@vDhdzLLEhN70$e+{Z-MLw5s2yaQ$%YnN1ojF1lYR$mbvJ$5zIHhJ|MS31) z0G{7)gj}25$H5p|AMDo6MUSbGt>>;Z83iBiaYsjm)6mTe=1oAqyl%7*wakiKr!hB%e~&22vd;SKQ{7~c3B{NE6-VYs^k zxZ&e?u2_r!dPin>ReBodJhS_k*tbdExH>yK1G9(LP?FP~$Lqc;@kwPvyz?HG%YD*@ z_>^zls|224- z9Bk}AJI`jHb%t1N=tD+0Bdc$nD5Hx!ZtTIc{D%0K{)uHQAYa(-ch5yYwMV9Gj~@XI z%QQ%z;;m6u-$+n4dtTmfgk9I%_!(M}4IJ)g!1Wf;#Gy{h9f2`Txu)nbVn2j77XxbJ z$C406wS5mn-#ckaj1Qo_729V?wm*j;cr>ER`bN_OC{6|aEajfV3l_9(e;JnY*k?8)u zo!lv%c{6n7D2kXn&`WEUN~`9op{hzg>fF(vuhN{?6Y7y483LF#opoLlao%-fm%$MY zdc&}qT!Og(nd~ub*Jk_n%ImOKHScX6z}BSu0rWzgXTlNv$jictTI6Hilu|Q?cGR*G zwhRX!@^ZHJ!onH8_d2A&n~c?cLT(bbDRQ}}5{8^Idv zZ+^&-i#GP%%05Abcb=FO zevTh?$NrArC741>@Ou{DC~tuPKZZa2LOeqtJPrP8{Qe!k*Hs+jJ@~G89e&FZ=5H~= zU&F5#ztm?Y6OKtn_Tc-=*4?OpdVa=ithQDN>BEq!-saA0@d`^G0(WiEAjB_7Dd*YS zrT(SJ6X~~1v8s56)!cR)cCcaB3Ch7X z&3Hm_4Nh?;%)|Ek092vD24u(J2Ech8i6hF-QhCm@uMD*sgD|k)($yTa3RjJ6Yg=XI z;eRN9h+$c?LknAQjLoWF-O)VBz~QqlC{BeIH8+jwZ0>4r3k6%-ms_pN8W%U?48X{) zWudlU>!=QZR#W?;&@x=@iP&IgkF5;3ot_)@{vQUHOIu zW2DV(UDviQU$n#q7A;da7LMNuzE=U$f^u6cn?Ms{lkqBqYvq-khz^NX6esPhN^xXv zl4bBFgds*(>*D1&l83LV&5N5mhZv#d$uUzaDk`kRlYm2vMeV%pbCs2htm9K=avd79 ztSO)X@pVylvllICUe*krMs|_Yx+U$w_GQh%PMl(#3dTBt7{qBkR?(O;wZf`tUpywS z1|o9-XuYcnR$L|ISg{Jywq*6YSpUiRn%#w}$+MBTlXPTPV^>%EqEU@)9ZMQTS|V(- zY7|(;4PX(4`CGBmzVFD2g(F0aAw^@yyICBWQ;X{lijcqMKo~~@~ z#G%UI5*(^*Qc1XULPWN-gu0p`0?Wcxqir)fo0>a8YFXF9QNi|6ZCx-OjDHLxidZ*I zSvaMWgF&2`6a|kAq2~zc%0%52Bv*^j^I0y%g)Sn?s@9BEL*}SVTkGN_L3XI7#?Ctw zu^FAb4_CK12B18od2Jm#rS4DAokbUekUGG1UhDFfR`lLxv_D1_*{yAbU}c|c;F(OF zueNbj%J|uXG8kf1ShEM^0QI`I#^sHj=tU@Zai~-C+J%~9Fp9~*>HtnNx_C2&ePb{o zR`xTF_UWNz3)%1^L!)F%PHAt0cyIx%5VSRNTw4gK<3jp3#K>dEMFWYxHmg}4m~FPo zc}vK(bC;kMCb0o5Yvh%-I!HXZY^T0!mEv`Q>IuoDp)^92MdWj6xJ;WIJV~EJPu@D5&`Q#>JcuI6FX17+q#c?M>6z+>n(e zgyrg5qHkcn#>hkL;!z_-ub5X`L#zH+`SRw~)>*Zf>!{0}FFMhz)27jQ| zm0ITyRGl2W(H|&trPlicQ(Pd*o$3N*Qn|klES)*#0{?-MNxuw>gNUB1E z0U-+;L?41^D*QFIgF92JsCK|#BlDnJpcQOzMl$I1$AJHqfas4&)k|vD1&P&5lBgH` z2!(;c>HgB&L;%-Ip^7pRTzBajOa5$;O7K?Q**pE!sGsbErLSmzX_?)udV{wb-1*yh)Vhd?ovb7d**X zQqHV)PrfCQ#C-pPR)6Wu{soKl|G9|>NoB~%SCxTwl>-TVyT)I-+$G+5yl;&hNYr*0 zQ8XbiH!Woi;~ z5}1^CuD=dlDk%~&wdIaBJvDfzpirm#2Jq1V>^U=Ok_B123(eN;(<+LSS)fp1cdbr; zpi+oHRui2w;IBq1z$vbM2uhS^MnA-!hVCf;CGKaE>`v5bQxad+fhvCA&U2EEhZ%@D3OLZ?Mt)i3^?q z7?*{Lvt7*pE48}8>A7Ocpnm7^Sle`^`gA10iUa2o`W6-c&LJ(L-{;=qUAXa@Xdg6EJx)3 zGx(W^Fro$Ahk}>8@=pW29tm}V1VA_n){Cooi zXW*ylWg|=*Dw;p?dZi1#2=KLlwLIp7-dymi$NOX8uLkKFz6kI_z(Z7h?gM{qfH{S- zKbnB~{UlexQPBG)V9nn-fPVm3xBpgzcj9L%{2>UxgrDa3tKjc#z#uE=p9lCoz`8%Z zf$%b<>Hhsg@W*qxI{iGrew3-pi-6FTfbl2jodx(RSNaBoC*#M*Xx8UAXw3nv>C?VI zD`4F}Dd_cpb^F`{{&oP??VkqtL09^%z~2Dcx;_3C{Luoi?*D0kcLTmemA?-B{T{HE z|KAb*7(ZR!N`%h=jxO(0(EkEp{0aW=0(=Poo&ON{DFCeJEB5WNfVKRNU?5BetoeBx z>0bq{k&52e!Cw{9;R*Uj5ayhw>4gxk$4~Q5UY7&LlqT?(0bT(ZYzepzfz^QZc;;{TBiL%mx1*{KZ{x3*aFjrt|+1Ftu z7vPsG;7sE__;if(h*2Rx@$VnEPsCB?xHOcXtN39o`zY_6)s8Ude(eZzuFy{QX${Hz zHz<(rrD&h0H!1)1N$|fo*+u!Z6RsWUe=`X_tP;6T9Ex7ZwUUl|xuNLQTnn{he%=|R z9pN<^fKQm`Ikh8vhX&viX5Z3|@EaO{Pxz@MnDg3@e=>|O!si+DBKW>@zHb}G{~^Y>@}7CC&JfY&!PMy^v9!bfN$cT2S1|>SrBA_GF>rT4_AI#$L)X^(|)8(~bSt5tfG@G5zRm+9YU{68B;592ZEPzj3hZxFuN z5cfY4{+q(P5_QfPfi(s`<7rPYVwt`D?Vl#T&RI0ruM7;#M@d>!F2_>8aMX2KJ223Nt| zgdy*H>2E=QU_8owgz!X^PZ)Ie5H7)7rr>u8gU|mW4E%F3C(&-v1@H+^BYYjS_vm8~ z-lXCetN3N~C&Lzkiszh5{CnwNkM>vb-&64q(f<UOc?opOgI4h zM1)cPZwXi689~7(2;Ybw7Eq>V!>3#>Bg}FLSD_r0UQM_X^OJ&?5C;C8gn|DA;c3tl zQShsTYw=7*81#=4o{sf>h=ebMpD_b>#VdF`VbJ>$VbEJZxDI<31+OMN6LyjagWfj@ zqyIfXe+%}mj7PrzLl|_PRPgJBXMqm|A0#{*`Z0t-$2=GC9PEqWGye#}^^g-`q*oDc zz_hAtX(?|LPjE`d8SN`KF{!PLd1Aij?0QOQB07f6If=~W$A&kDVSi#>W zjI#cnFzWLXVYI=!D*Xt3)bCu>f&NYKGZ5EI82DT1-v^rx^mkzWp%4Dvp?^P~CB6WB z$n;wH#GgVKZ8BZKcM(P(3oH0*gpv1q3Vx9=es3!HsDjVBP}0kVpMlL{k%H?9Uj%by z3ci~#elZ0g9g<6Z-cX#zFdD!=CM8 z;4KF|`t8^U({IB&4fv#6OSl8iPzpBSGBzPi`IwFcj3yU8L?L`Mx$sep@WHC^E#+e= z5OALI3zT1|{9@%#RQ_b;mnt7igvej5{2JxgDZgI%^OS#!^3fH={*e4|{SoD1otngS zFtvd3SkHp=(VqXx_$|s#AKK%6#=}RKx9Mcusq91|o_zbhE^QBGbiz&^;cw#~oTm$6 z`XJ7B^MurM_X@d}^{iCSy{pyp%3X#*K0RMH42%96^_=n*^?q-ydQMp<>)}~1%lB-M z@0dJyW4tmS3N59NJp$X!gSDP~dCrmVV?AJo?dG`x`!(gW-3Z^J`~}KyQoaS>i+*qr zdA*x~hdIIsr*>>Z);43fe_fMwp$O3*9nCXls4~mwF@5o0`7UEDgKtZ}y{cwLd0EZv zGb$@*SJdBLUshgIal2x9dDD~`fr=@r)kc@Vh@CX~Hqj1EutVeR&^S9(Y=_3$p`tN% z&Bp(g_t6*^#bLp&e-lN^Ikg z6YbChJ2c)7jk80=cBp8q9dtrPW9&#LR8(X~xPbME*fpemlWDkvO^Q> z(0DsE&JGpZp`x*N&4RLE_`8M{Y4^8KvN@S`c%b6{=O4#~pJ#D9jd zd<)0DhTCy(L3c5JZoE>!LQf4oU6%C3J5wy%wkyD9YXKs#9mktPxmUsRZj8r|^ziCO zxc5=O0u`pG%N>KTo8G-;hOrBAq=&7Cz$3kn@k`+E67}5~@pPKMzas3WSA+K!)rccK zHV?}sy>melyF|9oz0C+$|T(BZNiN!DH>zZo!%zgt_dgrPL7d0*jZ=kj+1AC67Oki z%PkClCEXLU?2|Ed@sJUJjE7|PIqbf#p*0RwoaYOb;|$HjXvO4`ffcxyS6EjFb>J4m z+{v`j(NeO{+{Blw=EJcEQ7kTF9XK3nitO>ceBEPwi5r^JFU)F$$y17QXgE8pZ6npq zoteyu)i(qfHd#qj96)l;Zg=l8H~tB|spP3&qC|5OjcxMScJ#42a0cr3Ii>IkoK-yr zq@6fD6lcCifg6765pstc*ac8Sp_-f9;O*_^VN1Hb-K0eq?fwz}!>U>|dmpc5j0X1k zaC$0xsZlpewqpGLH9*EWwXyZN*<*3sIAcGK+9E32P2xZvhJ)@$hV$fS^nMmD$oXD~ z*1zD3##j=Pge@IlT>}CazYvX)mBG_3T2(>Q$ST%4pFF}OWq3jay zF$a~5b`wF8^vLq=7v#J7A{|yIZrkuYds268X6QVel$vE9GIqBn+wV@`+wI3gsnOcZ zL%mk$aw5j>7YCqW#{`&FGBNzT6{$s=;U+b4)H!-T`wiQ%=+(nG5N19+rzvtj1sT~l zG9LdZ9;wJY+{=+>cJm8$v|F@Sj1`E)$gUQ}zCLQ1uru8UiZJdrYj9_x&VViZ#{k&8 zQ@h}#yz_Gf68{n2@ep|`-uqYY70tnZ8Lh}X^qjK97z?v5u_&IEVOIf{8qQ1_s0We2 zIw#`g#2;f5CShBB&j5R`5HbQhLY;-7b^k4BH`V$*yCCj5NRFcfJ(!Y<5w)B2N^to& z?0W@sB1iIjfjAS01#EO81{X!d07PFaj&_#{S-|Mb%j~l}T?iTbBDf0j{w$dzvZqRB zz;&Z}=(h34mV8y zd@pSn;lOTgwEH0tEIDXy;sziZnjHN~Q^{eo>O?GX1Fnrcd^pmJ%Ohd!0vAz2y5_@g z=D$&L!mK)se&Ni`Poq*|qWupN!S%Z(`yzYH86Ss_#Ld7#prRoP?D?6!ZG%Kak3i?) zOo>Siv$?#@lHG@TIika@y$QXh0R#%24ih=tKjjqbTK^RsD|i8nF(qe-222wPau6Ix z2EqwvOPPT#)q0BZLDW7P%{ttLH7mM_6BVI0LTwln)9smz`f<_h1JN}He3AVb1Lnqw zZ2#S`z<(Z?Gu3iE|$M_*LxVwtXiw#a@vDJY(-Bv3end z!Z!RN4kHSY>6y_@T(Z!RzUWUlM@J6y4h)AqkZex7`L83yR?dn%bMa9Kv>3elqHVir zdWM&N>$r(tPD-CcM~@a>@%pc+5H&G&@74?2ZwOl3Ef@R^PK^s~45Zz6L!SoMv78lI|?bK#Mk6!i+}%z2@-_ zpsV@Aav1NU?hBfp6BCuh5^ClOlg?l|f*(!lidb2frmu`jZft%J-n-I*hT z?9Z_(8s|>WL^D_*Ee1LFz9@KcZu@8mEv%#DA>e+-I4YID*M-{IPvh$(KmSm4o|KVc_~ z?tBnAusj|(eAs-rp((P1bGP1Lh#=!Dt*I8$N8r{o|EU(PrYK7r|eKop8EQHHcjrp4CxV?>>Tp@>M^Lk#{bh%pBMYYyhor*$rxfif83_Io(^EQEqa%3IVK%WUV_nLcIhVOC zMFBzXnNS&5Uo8}E>t3sq`#Uya!uSXVHJ>IDXS za-ECpBQf{bH)#r@%t4~5k;{AkW5Bn5v7w!j^doR191+^=P z#y-SQEa}C}H2nw+hMIvRm>Qftt9Zsh{cczL+sC*Nm_571ti`>iB?lc)Cadx2-hrOz z{~|lG+GO(0Ox>VOru`V>TmcU}dp>c`CEy=*OkCKO`#5>%{pA8exY*mZzohPV!v2yk zBgOvmdk8q|DE60M6)E0Gc5ZN#y<34j;nR!?_x4h5DnG!ib6r7hWdFqjorTVp^O}NO zv8~KS2lGWI??rz~FF79BP4LqCy*@L137Flx=>TNHsj}~@*aGRzVT;}z9tM{V4hC+h zT@N6B!yUXaoR+vT6i6vIh9d-`vVs$f5;1xC?K=Su|6keC@l3%PZ0U5{rI_UYm$!6Z zgVY9X>DY!Twsf5OPPwJ49K5CL9~1TE{x=^nl1ED^%C)zFV*#9W8+f5i${xp-QR?D!MNJNro>^>TlO9pw(Ow{q_&vp?t`;_N6RJM8`B z<7#d~%hlO?%AEh5J!R5d#mc9eziTjGoo7-x=*6TiF}!{iAp( zC!Xuic>nk?>ZI1IRQtyac1Q7An)^q#g=-7RzUpiwleS@f;_+$lMzZY;H zuC7J2*#!%0&0W@V*t$^`U984Mi(u6YR(z0or3E`j?b6Oya}z8~1sjDmm`Sjgv!byL zW>xT&y|u$yxLTMRf<{(>ieYIq{RNw3Ry(Y&!2Z}uM5N9H-e~Gb(qc~5){ zzs_0=Mu{v+gx#O!Rj>#K!&oBHpxTtRP_z>GZ@0RZLDz{jp`kB_461;3V$+_anOK5T z#UK&gH53tK^VH?pXw$(-N8_SqtA%F6Ts*>L9*vE)wZhC8=?T7Img}T!QM}S3S8Dm5 znju)x5}m?sPh)m-^Bt<4lXy9aG?K7RClHq$lXAM~pN>c(le95~c9JHaM8Iz6#L|)x zPgl&TbK}Mcb^{c6IyxA(&0;{ccQh{-BJV_RhFLRXO5<{oKv?!`jO=sQX3#WC%Y)UZ> z{m=FnSNSJS@lUSwmsa}=y>*FjwSRJzzqCwPY=HfNN}84^yvaYY%s;tIWN6d@@9m_= z1W=j^N-G3hDd1Xv;VM@q6en{p5CLK@PgT%TJ9(>%I5+@Xb^g*yZAe10wOE$`dbhd4 zb7?rF5EZNRPYh^^A?}n*@FvO;CV`VLG1WciO{kvtqVCyGj_Q zsPtRa{w(ip0xt9C1O!~2m|X48sr6fBLOKwikY!edKf6|#x{xF){KIPfIpuz<{FG?M z&%n})iodN1{E6{u_n)aGV@=haWsyHOpgR(}#ys6qzze{ebeZTlm7;mj^M#x&?~OW5 z8u>sksv3ke*IzJAcP%+)632igb`;{pR%GLMl4DWJXVu_n)y1~@;$ zQMb(DKe652<=W$Rdg3r%=AtZ{UYb;qW426>YXPPjvwX+BU-9z&!DBY54Qv}O-d5ck zybo%j%6X;Qp9idRe_?sT*g*5=)(T!F+RY+=jo<3f0Srtw9-=xm?M8p@G*|svUHMmP z9GMIC^Y&^~0QHGXC4s0jzufIR8~@;V*7i(fU<X0)~X`em!`0gfQLpN2hRu z#xAfhPw8&*?C#0<`EQNIIbwjhr)jxx1=M<)VnpVl3qwLlBX_PpZ<=Uu*|p_TJ7`>H zf$f}h{DWf^=<@I@RB_ib0%L57KP!w)0LEfggBXr-rW3fgC|sdKnTUH+GVW%DJ9aSL z`N_CHJ40NOa=SOxdd4`~1;UXV;jX}c53K9li7~@)K*2m0{B=}5U%`t3?*fdYSOWh7 zz`qAPLcz3w;XxUN3jR;PyifXz3f>Qxif%k-#PXg3Oj{cj3g*4lZvfWieI0NdF!ef# zzY*~D_*EA0PaRQRA~kNt$@D^Skub@ybrL(M9fJ?ni(*G;c9za;* z^G1p10aJ~V>3abqAY@DUXMpnnTPpou0av@yX=j9Y6^QHs8&9ouYr5`2M9gwOO{3g&*1b|JC|AXooLR_*_SaLW=*U(z)NFU5SfTI_LPIkTh*D(ee3&b}lxl^k)$_ z6z%KQhbDjbsdVNce4GL02wNI}Pk4F~e7-7=(M(^C{;eHh_Eqf&|6G;FY(t@u?^F1k zJBLC(Hz=6%<50-wW(9K&918hdkpNr950d!*RTAuCPw;1g&X7tuKV<+Y0_=k#{}%W> zpZiS(Q~N9fZOG4tOn;9)27NjR`l@iQ6y^9z@yeGz;KT4U&PF=;BmT4Sc~;?h`e2^( z2IKn)W3K*K#S424h(C<};Hw2+DAR{Vz8*g3rYZE1zk%_&Lgp+oyoOSfk4j(EwpX~>DwraQA;d`&bTEuwB zLDY&XvHtWO7g(*3fEr(Gq+Q(c|$oRQccIP%#a3Rq9X-$xjD{{o-oJWLqv zMhyt2zf2gsy+$8+|Ec0XCJdhV`H}HHRo|hkryu76RDC&4NoOKqv=6VKBK|ZLe*yB7 zFWvrp)}q`WhtGU|;>|!h^PxZSD;48s6CMJ48Vc6+o5*}<*KPFCjz1G`f3oWDrnbB$sCxeDG&A56W=_zMl=kMzL@ z+t1C1uD`$s|D##IVOZnn1HW9=Q`Gw+oSRqicc^%-uWaADRs1#;PgQQV$0zjB9=EH0 z_HFur_rNE8URm!Qg*H+B>_+pNH|U=wvE7Uu3>1@|+Io<`WJ$F!xiw@+7!St|#6raa9iJd2<1? zeMe${h`M+|l>0%BH@2HM4={ZYuf{y*1<}{&UxVk`v*BZ~((Ve|$-)@$j+W<8qGLmHMdc61N>1k1h{+uRa|bpBGB2~ zCYxQ4D?Jo(cs5lU1!17qlcP*qx*=u_1(O=y3vOwTjq-&??QI*(DuN3r3 zfkb*>!KSw`iQfAlAl~%?hfdSGEs5TG(9`ujA9$KSUS{d$?;sMz`&vQGp_iXTZy)IG z2M+n;9!Jx=Ac@`s7pnK5N%YJldf&iaVLfn2k8c+=J=)E4^Y=dXn&LesaOiY>%Yo-^ zzhT&O==vgyP4A~k{B6gp3ewk3)1xAxyW9tWhc06~jdwJu9t%(|(^wC_`_lE8h(YS6 zw;%MlEz(ZYD+Zps9vv=vVo#0?>G<(*sGD9E3d2-nJ56t9620{FGA-0W5}fTbzF>o()ijc1+_Bk2=CHR0(N#@p*#^ z)6;l=Rbib}20XVT9^ID^U|91P0N%T7SmoF*bbP<#md68NbUorJUu>K0_WJ;YG%ZBq zZaw_NM9MNa_mduF!ZYSV=V5gFwLCdqG!DiaO2!lwmsr-g!Xm_sDHQRAh2x8hEo&kS zf)KXO;Eef;=u>oZt;qv_EZuR*I`=#ojU!ahXS}n??3uYXeAFBIlG#(AJIw5P)$F+w zhsNJnajyCBS04lo&;EYu8ppz4ylOu-@{~oGf zN4v~e;6iF%9_l~q2{No%xe$Scv7fR$lw@Bi?UW#O@)FO?ufeG}p7V>xLut{qIQm|> zR@@HFH3q=^@W9z-_jCZzvoAHf12P(Sxu==pvSnP7?T_IcY~9Qyd^MtV<8i_fk>Mjg z^Bz)q0<)T7et(}Ct`!8@a{b}sNFzCwcEAje2NXGAKHMAL<%POi7Bo~NFC2acw|{4| zQYHHl5?$^W1iSpPfQRkyF^)1J0qUo3mF#^&BxT0}*T!|e$SXklJn{mNASlp4E zPU>^T$#y8RX|^pv2xl~K{c%0efG~5Gt?+LZJ^#=-=KZ~qm(VgQnM!TBRBW?Jm_OQ| z*84%4XLtBjC?%%z7=eXf-mEz`O8-jq3=Ii(qGSg}Ej4hi35Vox1L$N3?$&1=wM>DM ztiau$-vZTJzuB{!eeFJ0URDi<#OEd)m9UC-6}^h%Q~eJSNw`!xu3*;g10MlP_ko_u zg=Y7EiHLpSBM|=E2)8_uruxON0HG@kL03pm)fLi3SNIHAPFMJ|ptdG=NH~tJz|EOT z8!*E!Fzw+Z;l18y!^Fr-hku8j{{i1=8B|n0KVI}#3f}DbwUFf^#8Xsr98skfV0hO# zkcyHJyXX)hV11mWe>%Ec(X0KJ<4gnzM@e`lItesUS4`A`K?8}-5qnaX>*^v2CFqkO zE+H~YvJfem{@-ByH`EiZ;G{|QgLy%`$K%7>XHb|3Z`MuRwCkf;%C37y|x@L+?UVN&&{ z8t6C&aPR#iqKxd9qibIF$ulCaUvWHqJRY1Ec|GHJ2nS1)N^9&%mWW1QiZfpEM_h-Z ztp0+?D>zJ5^y|nQvH_x!#Q-zRO2Ex3I>fW|iHhARbVReF)sv%jO(idwRj+^r+Z+T{ zT2sk`y71GRN_x$zeL$aiO1aDdTZ2XIl1nOnK$QZoi*GN+bQ*q6Fv4oWCCd*+HoBi* zhkMm|*>H~T#He|1#w%vv4VrN=%s}tchK0#<@5OI)Ucd=v2|XD{gnKn+s9XuKYg7t_?sd4D@1@L00Wb@ zos8CeqiENmUMv#3umqS7zI>VI;K`Y+QY65niv)Xk;sAdDyr7YLTw@_i?i~2kPrYEg z*AZ{9lHQWRh+5KXGx3^0sW$UHn!?a;4aBQ8;s|OEq+YGLa_F~hHqNZZF5GwPj<#th zCrDk{Q!2xf2YERx-fi-wUze?b9BjJ1OJ0fFfy;?`DXs<0KcA#-( zEBXi(S16-V>1=SktqdjeLl4x>UM>`J?d*2ERIios(DzHwT#~k8xoXhO=0BVNO=()u z2l|Ntt%g^VsIDk%&GOha-7Wm*C<(dL_rNoT}k!I z1Fg(762x~k{sUhw-KBX#$4GV5$w=nA1G<~}l519yhxHegw+RQ{_}epgv`^G)?< ziS~Lhby=?VnyEENZxv$-H=k7qB}i%G_fIPSjFa#R1yWhFBu3kSZ}A}+PHg*~dM1=T ztV(F0PVwiKYqdNmVAhEygJ!C&z$*G+R{Kff<-H%MxBM-b-sLBd}L z{8NPST1LQI0l$PW=V7Loc@Th;`G*_d2K)eEzDx5!>&ypy?kV`nfiS=Sa^I@)Uj@vK zujF^Q@e9D*T

5mw5(4qT5rpF&HQ+LO>V(4bifRza63G>etFw@};Xg8zv>r{h)n zh2c^1;UVzLyth!HnFp?e&Q)k$V3+=9xZ8J~iqH1(3J;7kj9*~B5EOq#gNWJn#wj#o zz-nlhLbGSACHB|brO>Pg5AfbO7^5Y@qtJ;8&57FHt?lba8OAROXC3$oSPZ@liViWs znHpn3^hE3yT!4QunihmMMK-Ub>m*o-z33DJ&7)uiwCENC&1SG1`jA5N^a#T^%zH<{ zUxO_gHx`T#U&?gQ_KZd7RQ1n-01uF%r4buYB&*aA%-=;eQ-LUSEB54uXB zSq9z%U98Yt3eJUItk7Ht=0N8uG`-;6&^Zb%9bUg7f8Y?e`VsW?7{7w<8LV{AbtyDA zg0p$AMxiOXxul;f2JghYP@(Bj_THHa&8eWcOH}sWi3-h@K}rYRVTEQhcnAI*QfO`k zCAQT}%+G&@1@|C~az9c<;jlc0(D358}WI1^fQg@NWFa0YafLi0kj z(q$*Qy{2Q|3Le3q!(bNfniZNN7$g%KrUgNBA@~d28Q^W0_e5D}c7YktqT>rRTfk}1 zhZUNKKuO73iB(5wQ}a963&6y02@(5(tB9bLCT zi;gbP%mLlda}=71;LXqz6`F1^1$w+fQxq2+!ANv;C1ZX;p{1K^3UoU(Xf}eAp?51Z z*MUjURSGSgToP_9G-&DKYQf*_1C>s>tqM)ixpgD%;9nOsec;3Vigg=Q`&{)nzC(98j?{84C%?yDQH&s1nm z1t&nKDl|oxL?ZM#g=QQ08vWTxg^PBB3B=z6#^Y|LLUSr8P=9LbDZQ==ZiLG)4CdL$tS0p`~MsA<@#Y z1)8~-GZcEg3e8xMp~f4d(9)?zSMTj{SaR~r3m{#gw^O0n1k!bR4=6Nuf`g#9E3|ZH z(X=hyS)iGVIZf2-RcOuuC0{Z@nvi#@LKD7oOJ^6~(F9F5NY(X@S7?p~C7)a%RnUw4 zB0=+nq5MCt(9*Rf{x?I5|BP*d<^d3Yz55lKjiC6yTcNoV6#pB*0hre-G&h1&J#URd zvl680c*_);^l4UmoeEM^-c*HVB1o2cCn_{^!5@=#ZtzDUa@IL9)#;p==yaw|bvSoB z_B$NT{ful14(D{Lpv&M?lUg;*%EO)!pXCh=kbUW5yWIb(*VL9 z&^W;1Y#!J;(8=>K8o%mXu=_dpM>Rz`oJ~=!JX@oV^E@7PlIO{&(>yx|_mHl-AzOzK z=cofwPFx=1*&20}=kcf$JWoco@$4LYVKDI-T!YKHA@w}B4%t4$?!=0F%!{vpcT|BoB+c}Il zSX#sm4{O2A))D(gIGh(o^o$^^5!-oQ7}15vfl;#qUUMznm@-_XEw=MB4g`X_d>JsaD?oMpvdEv$`T=v{pgYDtO7EF9M)$#ji;&FcOPdvaA zacXD?JCSmdXKTt)o^?0ZqbF=<>h4tHoYsU^u;%o`>4ccN50gV_&6u>Lw_?(ob~KF= zndZxIIDHun8RY-8o@q{g*I{z>_7k@|c^H9Fb@A!SRh51|OQ}^cY}7ib+{===gP`NC{_((VTW_$!}Sl-rWWm7M0^(Q<9T3F6VK*F zhk3RvYUO!!(Q%$97M-graLs9sp-FI+N0@@HJzjBFybol&DC_YrWa~@xTY6tdYq;UHGPAo%QQVj z(^Zny{6}BdaI@_U2>T1)by9MeWRwAXnMb2GMdP1E1jbi1biO=t#ETdwi*LX*dh47zf?q}_LF_wZy|`Q4@I z-)LGU|8o6K(=JW_LDR9Cep}O{HErpVV*+s0W4&%5Z&KA4ZQrZuL`@GQu2SBqnjWI* zOiho{v`5qMnOW|0G<}n%b2WX7rWb1ZHcc69^O~;FbiSs2 znqHyldQF#VdaI_ZG`&;P8#LXh>CKwnujy}Sx=GX9HQlV~?`yh6(?8bqQBA+3=@Xik z`L^V5o2FmWbi1a1ujx)r|4GwbnwELJ)qk)^lmH%0U!GWH@4`;#Ihr1$ zX|JY}HGPyxvs|-mdnVO#&DV5`rk85EEKb=!rs+;iZ?f%2DEsF$yQ&IwrIZDsK-m#xb$ zcCw&K6kyonsLy*FjD1PFD1*Ny1Gy}ay=k4 zVZ5aC<4c0Zrep z>HpC5-*kBYDKzcRrQ6T%G##sH(XlP|qcwd>({4?l)pVk!|0Xo~`GSs5G>bS%f3ps6 zxX{v{YWL$covGBX8}py@(Qe@STK*Q?`KE;RAm zsPpFu?Y>OA->B&-O(TQXihqr!pVPEY(>pX>ujxijZ`Je*n%=4DpKH2N)30iJzouI? z-K1$t_aOP#tm(gqJ?ZJx>G@E*Z_)OD*Yr_M4|J*cpU|}IA4z$%X?l#N+ciBw)18{0 zqUkP8Pt~+++R0^V+NJ5cG##ty`!zjU(+f52)^vfU6E(e3)2W)S&~&DzzpQDGroSpQ z`SGsKkL}t%N85j2)47`dv8ESl`Xx;-)^xMb_-D^oej_w}sy)8EAvE>p-#u3HjX!Am z6-~Ek+U~E#Sadg@BhTfMX^qgLLsu>tc7%S&qLh9Wq3!Ft{17^qO%J)g&MovI!jbEj z+(I|7IV0CkxP`7^lSZ!JaSMHtO&+<}Q?%%fn8~$~TkJcjH*(#}Ep#1uAXhZMwNs1! zW(Y0&Jc0I4gwVH#(3?W&xA8Ub{V^f-Ukst|524S8y#MzQx;%tl7(%ZKp(Psw<8yro zeM1Os|T1I8*7mWO6Rb@84yu5TZCdKe3<-;R_7DHH1ECqkC3#oTft#_=~Q?>K8 zkLFuUHlnOBK!c)I)(GcD32Mv&ZIo_BUV|M-c$O@m*FKs)wX)Pw6)3(7DgFl-+?pO_ ze`~tmK7_9d^&c==3G>l1OGjh{!HY?#l1RTw#Q+tM;_klE+|r6l#V4f{7d~*A-o(5> zO^cTAN`4qmVc{86n)`7Eq|KE42@_#)cOt;+WHUG`|0}q^nCSx zx_&=BU%j86Z@-TgGyJ(#$KzHVkExoT>Zg^zQ?C(VN6$d|5dGI4k6*L~A(o(f2e^a1&)4c90)y;nGqjwcmtt~_EChbHy4P+?P zMyfSvg`monGLqUG^q%I<((frM=sjf=_}(4Gr4@cp?kHYXP_ot^xd;0+%&K7f_$95j z)W=U5tP#)F?5E-u$V6$yEG@%s-&Q|(cRBiEmH&O*l|f0jdO+1lk$Y2Zg@M$v%knHZ zBGPl}t~M~=M7JXzNvEd#6H2;3lqmXb?B9J|qk6;NE2d@im)-ujN)KuKZk4)Kvg#E( zmJ&PNldJeCYk&L#{Rr-rB`$U!tQ0ERxne6Jv{esETCMQ?g=dGZ6-3(h{>%@yPqURU zrrAmusn=H5Ww+mSy8-h4_$+3txj(IMM?5hgn1Ox*=w zg0{%uYGy}4vTLf{3-LpR%nudLR6Dz-iW*$Yak}j$-F9P-47gEo;fKlveyF(cLv=^| zP~8zfRQ~cq7n}U@mx;=&plI3!G1V@JsrFdG4a$z;Fx0n|9UOSgDYJ!CzX8)|D|R$pSfHzZ%aq(s9ai4-{X%37E8Z+ z`kEzNw+dOdRpeXmm98J^eXKU^#-?R?A-7&uFrm0MJ$?K2zMA+aOD5lFi@&fRJ$<2i z@PhT1+WySf5wF+r)Z}IGX?pM+djIYRI-RFN{L{-jzrU0CrM4W|FyWHzEuj~~bP%i4 zM$(M3>n#2Yqb(kO1U!*tTrRg4j&8sCN=M&2$d502nj1O&etYEf7d_hN zrttBA-^k)F+{_&)v;Vt&@>kn9|4V$XS@xT_Z$`#WXnI9%ULJB?0@K|r@?UkjZTZ5M ze7$m!17p1CM$WSF_pi!QvZ1Ej=r(ZgIyY;J$m2XqIFaY$GdX9Q6?H7WDt>-^R}%6; zTR=_#ts)Io@wts2%;9%X_TqgXG&?E|*E^4e$|fAMDbF z%d;)H%_94$@Mp-aLXOKBC-TZ8JXxeG!}l;}ph@4A%++Ty#aZ^102;7@Amk3>$hEReAp*CY8LpMj_Mr`8r?ho?%HFyUx3VOqGua&S>MnTx5Poc}699vL+WMW$sC)Zs1nj6ym19VZ_1Dv6p>?xS2*| zt(>V}iGR_!7k5(%CugpNMfx7?ezp;LWIf^j2{~e=Ms{^^ea@b;Tu*o9aqphh#U4wp zSoCP*JuW2A978&m#EIPfaeJfUJeiyST=nlhuxu#mL|(M(&PR%ss}IF62FS zAeWJ`Hm(c#+#S%OODWtjC%C?i~CUuSbR z{cmC6$h?W(`w@9~5!o>xBKO8c*`Z6MwrzND*Vfzap{97<09fd zE5SIwX*lT!8(n(@IcH}_dAjEj&y~n|$j46fDHJ1<0eN&;g~({<1Tw!-?4ebWH6K`yoc&4$K|_qfF1UX=#bIwKsdRp1;}1svG91 zu0v+gzF|i7EMy`+LYYn(8dbY01^dYynI)W;kx_JxIL##=JCJ>}J`LHP$iy!F_1Cv` zP~NK&ez&cRGMh3qx_0#j<5)ELww^p1K;F&Zpf-*kay;Ou7ri`(yNo2g#2f(szk;N_s!?*Oif0 znmS3}2ZZ?!WgzL5bW1uuq+THRYVUbuLp(;95;yr>X@`$oyTI`6u%EzwCo=FGpYGpY z;uKh4?eHW|ByZZ0Lm}aOc^)3%;-szj=VzdQJ)|Sh&-0Y0 zJH;`+>z)MqC&zVNQykZG$8#IqQzE&Ca*q*x70zR?|GoETk+^66(k*f~ zeP@;aial|a?`UqwB9&&u2cSIk#C*jDp$;{^>9Wk{M=RREkMtXnxd#*a)pzfWQJ_Oom9!RNZs(hf`!a_-s`GD! zF|c+9^9C6Q-e8QAw)OldBX82OjSK#Vb~B24Q9aA^tb}j7JBqu^TgTO|Ts7{22OW|3 zjHvT;A9;V>o6oOY)wSL+x??eNyE+_QFFkLJoR^PIsn?9!v1jQ!?{P%Vo9Bp#&PNva z$`>||eGt8&^S-?98}@rUk;&6RUF@MBJ`=C%Q4wbEk2AVEZ=$a1`jm*wyEYkv7*{@~ z|2h?IbW6W|`X=Mx{~{Mt+Uu$K>^%~HNyq7%JO^d|!Tg(dJl*F-UkiS*7LD68Y-H^W z`qy>*w!@LS*GWHBxX$xt(S#QAc+B1+^rR*`;%Xbn=hft=rL&WICHdTT19M06x`Dhd z#%><<%1ga^&zf6ZZ^^@ckNPL|OmwmSgfKgY8r5C2x3{}zSvp4slZW@yhKJCGf9Dud zn@StLNc)YQU>v(h`@Kl}y-54L$U7HlzZYr07iqsA(0-4SXBou*Cda_qcxU*k&YMUd z_2Yvu^3XX1wZBH*E%YHDj`MW?#5tt)1M1rcU!qUM?s?+(gnPtG?!c*01pXPo%S z;G^64)EKuU+!)&8esx%7(%Qz6dHy!gKf2n#?-uYnAZ??s*L${41w&S<7t0C(Q z`gG;4lX3bc-2Sua`UB~W$KOKAVK{aD8E0heamt{Se9l4MZ7FS3%AkYr(P{hpy3WZK|O##$JbB z#7x$rA2UytvN=s(;=_+KH;hjo!kD|6bjX?|iS@@OWV8FiSlcE1k@eJ=z4LBh?SS1m z>Sz*cnK~!Bsu^DxQ})h7FVq?4!RKi&r3IgTtabzQXVIVXltZVB!49wZ*r1vXYaHtkuIk)gse1CDuR>xx-o?6|+XDV||pI zXk;a@mYih_=}4knV(8O$q#0|@u{Nszb^X|L)R(%1quZXMZj}yo)=ECZgPT{x`;)1Q zlcS9TMXbxBkmzh!IhVcYh;2Qm#olt+M90Ksl^;8t1+5_vSr} zozx+ji?&B2cT!|pv-S{KyMgono`5;-MZMnmh;rfXI*ic@#!7?;P(L12zHxh{{G{yKDSxR4ZPq+_ z>|XW^;{waJow&LK!f=pRmK<;Tbld;L0DG|u%nREMTZ?f%))_KCqE2>8x#a79;2X4E zDU&Ib$GoCjGsWKS3x?B|o*}Q@%*_!nO51kPwrR&3V`$q-CiN=H+D%y`5_bFj|NPus zm|6EHvOW+H4l$MvT zEfXjBqWp6gRJtoPF9cp0*Wl#y<)z3cDPC5xf?!IQyO&x#A4^F=If6^3DdIwE4w+rLVr>QQDDf}J?&8wYGIvpl8{sTgQdNp( z1f}Qx;-x7SmDR<|tRxF_3i4RkqZctN?&b2O`?AayM>?~O8fL2Oai^>UM{(||N}*W^ zvftqq{#(#Gzs^3Tb$%T*FK{SM>^l{ja*iFR-V+KC{E>6%;!isd@#nNc(*uLojks$XVx5Cb*$qyFmUGd9 zat>Os5~OXXw6Rf0`%IB@se%jHJePbB1vzrgFjt}J1^Hg!mGh{enF`Whq?~ps_rixJ z`F2vFc>*LV-s1|*N>Kb=3etyq7b`S{KTq7{DKy=nxQkQv*7;N1o8j7>q20;(Qz?fA zg=QTn{>b@L(5wQb9OT?7Xu3hkzc`Sr^2RDOU7)-duF$-|#xhy$?Nn&CgJOSLp}8Ft zf2u(7r&6I=sO-H<6`Ez?svPz^6&8XRd6z0QQ$fDRc#{>HiQokMod{AiUbjM1zR9q6 z?;WksIzK7-Bj+avVZL9Xxeuf$y^RV@IZw&_$-7md*`V#2bBjB(2D}k}W`a_V6Tt*9 zM$^X`tRx)PZk9i-3e6Ufs^UGY&^i|>?=?bGCA_;8nhhXDWu1crO&>H_?A@r)tOCg@ zZ>2(H&8c&eixrv+!Eo&J6q;U;@!6ZB(DZ<0iC4}~f@Ug6)J05G z9q3%Vl#_A}pM$e%js~7`HgceIre~ltkJC?;Rh&9=v|!TeI4W+!8p1e57PgP)R!&QD z0*%v>{0`q9&Uv%&-8}b&@8@}%(~>-6+GBVQY9B->gMEWJGd84d2&c$mH^y?dD)xjt zho0d4;f0tkTy_q+fXn*94Y<58xQk~4=N>WPbmBl~TkL6`Cx^D-zGYbJFwTPwJI?d; zr1nXe+}O%VxpOym^6b3n0%znp6EDaKx=CHw9>4Jf=3O`T@H}zTN&i{9uEd^1!+4&2 z3H+}6f~MO+xnAZL`%a5e{G39!a?AB+ZlO<;>2k??LdQ|~a&>VF&0e~74dA!XQ>ip^ zjnH%+l~XRarbXU@T**S?xBdOpBQynXfB(E&+y7MxnCoF}UrQ$;*K%$DU)o;yL*@M< zZT}Uaxew{^q+LjON3?tSzAEmg)49m?V@-cc(?8SnDoy`V(}y(upPHVg!+S&1VVZtR zXu>^QfgoODapt#ffqp!qT~V+3JdA+UoNK zf5ykac`FzqcveIED;Zpo0CCjQR0~ty} z`FtV>r&%hbo15#?_(_h^zT|4tmDr{kyZ#}5l9~Yju^h7 zFYEJ1e~don!EbGI9UJ*=#CNmb zjb%^bZHHq`0sCN+`7WLm?a7*ZUDdx&9^%QGFx-va;y%}DTc*n?&uc1Fh#T$9`xJf{#Y7Y7eGI0~d z-cb?yk=xma?jUUxg{3p#W`lhq;?zwZoMIoSb%f_x*)u;VhCMD)1&-3^+&hW%~Z-45KXqHKf?LoWOprVp-5y)ROK z;u@SIkG#m9mZV_^do!Z^t?j|qirwEltm&T+3AvVY%lyW6PumJ|Puzm$Hxr@7%)VH22GKID3$*W> ze@Mw0`SxtWnioJUDT8}l#$ErcLr((&3Oc{^^SVOfDB_QYD*^_#&~Z)5P5Af>H#e7zYg?^fSAV1iWlnIPEN@;bpQIg1sDGH(*mi=U}~x%{3;HGsoj4$y&l)wv8jg%`sH@=aj? zyiD>vN%*(I;C*rKJP*yOHL?r=152pL8C4^e>L?aZ$#BOOeKb|HIwH{Y~yC-f?t4 z{y&cH>a*ydd*9Lh*k9#6H3xi|@!#e6*KLJw^_iXJn+D(fG2gtc@Q*S#9B##XM;K+m zJTb}Gupm*=>=>H9W8kQA`CT~7ICudbp*r{i&kZuBZVDSUY%}vYWYdn2$IHrBkos)?eqa^c}B{q&_gulR3tE>WJk&!Ldg2-L>}mVa!=A z9^Cc2w3#E;(v7-4&7pK*TW*wI>-C!)Yc>#Gk<5D>W6~vl-VvV6eINHuyBq&$lGYrD zGV#|V3D-8KZCLZ3Hqm87{=XGq2mi4D9lP$mfj#ZU(uZ0{dUxpb?jXGh@K?akVWpQg z8MlM9c}Y`Uq+|Y$6k|;ybH?K8eNA=fFsyOJzh$RY@@B^ijy2~<#}3lt=A9j1bF9gh z{HTr{#u_MY$BU$$JabjY4U;zW8aj|9y~HJM2l-^VC7-0txF|14qw+sKoit)L!k;(Z zOTE*!J9BR(Wn29>9+r?>5eFAnX<=-=~u{Er@4s>0z$DXOH^5 zf%$adFwa3dzwf~RLio_zhoCPT^F+rOcp1l(Pv+g{d1vL&&12UR#>(G^S1;Zhx#cy- z){LSE=G||FSDzu=qCbXLum218bcgU?O?~vIkyg90%cLE>Vv?@8`knP9&VxC)lk#fk z{ldS7R~MdDX>rg;IGNL1eAWM>%pUpcoND=gXqoXlo^P$ENM9rA^QVct4@{HY7TQDy z*M_EXI5%2x9%Z!yJMQhoJwCx$vw^x>_?J1= zKJ*1j`UAsYeif7_r{tS2WkbFlwBsk=C*}92tsz4Fey_K8R6gUwF4jOU>dngOia#jS z-MhG3Su*?J%3*x-bS}&&d`p#m!6SpWyz_6Y4XM|QX*2Ec85RDXvkv5S6!Dh2Wz`>O z>8GUs*o9wG7Ll|yDTBF}zIvOTj>X-*Q|XJJl{Jy7FT9VN*LWwjr?=O~y*uO<^FXtD z=VzeG`4LYp-SQ@*K3xL5EB7Q=6a6R_;N^N$I<_d5m@sI%4|V zyJFD+o)q$KDmY?isR9o~$P481^xxH?n<<|P0HMsA$!x(18=ja@N+i4rMW31&* zn~IZhT4TG$a~eA}9@lt6;e<&Q6Q;Xo7c6zJmUHr=B;)?ImGTvpMMr6QwL4K39r7u4 z?UKs1<;#+c`%9LIwe^j&xM*2PrJGNyOO`Fgvcg?d;lA&4Uaz~X)Y5BlvvG$~@gR## zx8+kIzm}C7)-uNZSb349TO!a#mZAm9EsM~5=ghUfiYB`skvJBtC|cq!S-biXbW!k~ zIWe_rQdN?*deyJU7gXhz52|t|{u*7+E?QwlqICIkc5y3;9$)rp{@ZV?EkQHJ(g4@u z&mC6I+|MMO#@NQjMlx$y`4$%=Yg>h8F31?-^(r(+gGso9cSL00ri6pE6R&)L0?i8y zEX;wtoeIsP;LW&e0dE28K^OMyUkI92;AG52)@%y@aiF;Cq|=~Jw`9wL=22*IC*K0a zK2M`pqsZu>@7XOlg!kGtEeLJNY?b(m%vRcuC9@T@WVYgkC9@SYo3R&nBIAQ3c{!6H zXzmBa-9ClpZjh*YcPccuYWoIle;ChG@n;{%RNDHM2%7Q@5hq^xRsxzHkPX}v`BuYz zK#EK}(!dyy0W4)HWh3#CJqC=t3l*9JoeLl0J6G6N|ChCfh^-N9FGTF;DN;n)b%@x_ z^FTxsPmw5UOY^LYu8-zBSM&v*H8C6cg4P;yl&AWd)*f+=gcTFHz%^gF(A@S~rdr#l zQaEzeX*yHWyM!je_F6^qQ{KOuLYGVOS!j_NBUg*2_iI}AipBmDO-s26y@<*sSDU7{ zYI`YXv436DotlPc+Pb1Iv;QTsnr(=q^x`#ep@6F;Fx>-f*sbfTtj)BcH!Be^;>Z7ukrCGGOQ z$Ow`vP19~oKd9+cP50>cU7G%*rq5~rMfRik*P`honr_qdd`)lH^v^YYT+{LmT;3O+ z0lC__g`T772yOq6rsrt7PScQAw+=Nz^hIB$;ddV~w?gD+AfU&J?K%5vXMSbT^5t{Zu3lZuo9eATBkRRJulnj>@aC*7cOvwwrY+dQ z7I<;_S5ApbI+73sGHDb4(0*=a>QuLNseMCO09QRyR9Ru~9ft1bGJJie@04HGePEkz z;5IE?k=zUu)^)A>hPFH|@sDoTSj@zTF}=Ti!>jJ|+5Sl1Cf89tmMQA;=cnyM_DW*7 zo>XAG9pazFHSn4QA^U{Z42UQ5IE&`ombEV^?niTHGGP>!4AGAvd(l|?_YJX<`J~ks zVl8vS&wNolmwl)7n^pGhSGlSJe%A#2_VK&^AN#f`-zA^m`{X6|yGXC~&Fne(-pN{? zvHVye_eIuL-x_Fa`IvpK_2|)_!n%9wz?!V4u&$p)#v8*JBe%4}m&;keH9OHUeGzvL zhK)Yb;*9G^VV}WTtFo6w)>(T|gi}A;Qt4$he8hg=w>S&@aTMP_2{)Q=cpLcs8Th?Y zzTwHYyg#zW+>Top;q7p`I#z1GbHd^{13kJ{&MWm7Mi=`!BY9_i*vO96tmDOR*>kk? zce73x|6QEp9mDyUj|t~x!s+4L-$i(<*RlWb7;9Zg!>4^S{Is=wHGVyTU+n3oe@GbO zXMgdPwS4ILyf*fEs92UPgl4`q7vAN`YB6HjV^MpS^a*jYo@Or3p0P43+?(A^#k9f; zJTqtSQyY!h-5&fBe4StYfdbpB(aST+Z0ZckL;Z1!uArjANg}J_pFzxmx!2 z>c7Zdbv*GBo^B`SHR8kg4oo?YA82H8ej)v1c*mJ9vKN6I1;?0q?9B(*$EW`lyFxj) zz<1?B?BYLhthqRF$Jp_l0T#aVvsZdo&R|&Kj@UbsJ<$g0=vm6XTk;?D2i?fq5u3fmvQepq~jv1XU-d68d*VXh-Zv^mZo)~avIs=Pd-jj54*yB9Z; z<-0cSky(0dm1Eoy&H=vQflfa2#IxrpvsGbH@Bu`35Pn`1`Mf?Xs-uy;tQhkDEOC@` z3-DydiC?ZOga=dX)GF*{k4(}e=NM!!)_$M9F>bOW=E&->nA&L0EDh#dOX(fPmQ>=< z=6HMNsfb_AYy#CBY7$1$kJ6o4?_B}Ve*dPr}e4g<|6e&Q2NxvpY-;g;1-m<$OB*t zx8Mct{?7}Caehbf`-toaY45B*^IGUXM>{;oY#80~&7W@FCVRrNk1prJ-_?C=o6&XK zi_TGuPos`l>7$>JblCCl?@Vqk^Sjy1?=)}7oFce9%9Zk3RH9nv8r&#$EqJuFXsOoR z>Mms~t$b~Xk*7~|h&I?@f80ygazdfhU5xM62@IATH-8#a$y)k;YfVqSr?fJ7w1ykI z1!XU&Mbm=N=1h=pFDb1IHiDHH3WjTxJ&QxUFDUPy)U=?yUjx!UQ=}th&X?i=>0?q7 zLHOuXV!)xG3#2Z2!xdV3f(Y8u69k&g44TZfQVxO4le|p|&HbRblRYVMw+^Hdr91?R zzY9U8h~7MfmcAfy?}Zlk<3U(!Q@Y3#aeo06_nit&`d!Qac7>Kc94#k$IyR5M<9w_-W!s4|KXGDqi%=nP?bsoD)uS=TRrS zUt#;%59>j<4*Oe<3z#2wp1`~*>=5P~!+n^ajA&ygtYuK^pe^_txX1NPP3KC0TtDO% z`#2&am+V0ZU8d=DBhJlF?$|9RMQVpNOFzQbh4%yZ-d^y zDdc^~pgj`FXEC#{4g3hCmxj;}gwWKnAoq`k(07H<>`Ml@zafOyOJkUk?Utxa0y&RA zormahK4)2}v&!!i7W+VuTv}`Wt=N=hB_6=ntQN-kc5G~RW1EKS*XAVl8wD^L+h(C| z6n#hG+LBd9h~L4hXwCX-FQP+PovzGJbKAAa=|fp`L3wehpVcXJT`cV>Rw{&>n`;dB zR_oW*AF`$kykr?Ew{3i_>tfrFQ2#KmvF!vWantW{(d%$Y^OC+n-jgsrJfw*Pt~144 zZn$$h=l5^n1^Ii69 zq#RnDo`dm&j5Ten^Wr1n{UL6)+fxItv-p*4Iw4H$OUN4d6z*;FUF2P;pTbvRm%E&E z$8E!_8J_MNkpH3fZQ_`J!$lMAWffuM_F=_Q(k1UQSS+_jR8Gs2^9kJXO zJ}q)3v%5Fl$a^A_5WbScftk0>Q0tim(={@eiIaTWg`9`Nv+$T~FxE6nUS_L2vcm`E zc&p_%bIdr47X^2=+5a8!^Eop!e3OyK5s*eVX$+(bpaa9C5BA4P;-Ku{E%`{T;{x}a z`YnUoRT+2!%D^2^2Er%g507?O_*8Hi@Lrw|zNDh3$m7j@c0TxDiZ)~REad{vQV}vc zS!*!mu35lZ#ljfLM_p&_y!Vhk$@{=`zQcO5jXEEg7CTOV!cNK}`(yS9boso6nY8yv z+Hj=H*&Runiwp;+fiYkfxRkwGllEHNw_h8WKhhS5<42*?McT_wi5Kl`m*oFB>IuJ_ z+2=8Y?}cy^Xq)Zqd(!_}d#cP?<0Q_4R{av5xpohHX7Dp6v}`;372~H-?wY?w8Et=M z?Y)_LcYflxJeS&V7nzq`jbG`r2sc~m7&4y<2T-pgpz6bIeGtpsw>~%-fyvfJnGjBQdcIH_}^t{QZ;xkjvznvN7jF~qXIjCvyxlVQt znm3tqCrLx;gORh*fy|3@$lQ4k*(>qzg6@OQYA)%RHOM&s3VD*O!%K=YwoE3>6#U-j zh?$p+-^uu0OE^>TdkTK9Bz$yPAG7=)B>qR^e+>Q)viweFZ-7B8F52O+WNn^9K1?0^ zAdH#y>_cvmFkxKF%hzXL-oN^ae7Cn%R%(&&{=(iOe*~qt;8k zdD6Fba>nH(cMJCcZmIh&$}OL=pS%01ZAqVGeR3%5H#t1A_MS*&QBqDS-L4~p zy4Sx+o2-9>w8vAvXQ<Z+l}(0M~wrc}l9oj}sxOFWWE z_dO9YwUWl)vFG#w`O!ui?{|2rbBk724RH>ccYjezm4y4xn2`o#6d@<)3hCad(=K&3 zCk9z%q~GMCp9-R@<Vv= zeeNfQ$0&i9@e`@fXUGRDzjeKt;&Rm@uT$q=s&L;f-fOk5{L#adaRQ??# z|C)6EHN_4K&c9WWG03X&94sqZ-6Z){T9ncxVW>Rafv=)Y!SDI|GXsqIXKy!#$r(YB=lULXm;Iip&+uL4Ctvow`9Z?yZ$Gp0mP}+b z&3_r$(%H04zSnG7)X!Z9q`QOF}56YIYu7wIbF4{Q7_NZAKnAa z`oiKbe|wm5K9cZfQJ1HH=jadL;~T{rD_3X!gud<#$B=n%tW1$GkHK$u>c3-(GBV|S<3D3o!MDQo&XFC`ABNUH=^xwZ7h1WS zxOa2cbK8AnJaSW`7~3N07i7Mf6KfocC!L&i$xC8Pld;Ac=VXjy40?t!?zfIX(O+YH zdxkOSh$A|>mNDoV#vsPM=*^5l&oBnP=7@~m#P}xtM;&9F^dBdO^FMhAY@74Id2fvHNZ^k&zv08rD;Wz8XIAjU? z%gye~&rwI-qkT#FNnbv=NR=DoQ}o~>tK7Cox$V$>c>;Z+^gG4$<@OnY>m2^{A=jT`yI#lCLTq;MkCuahOz5w;C<)6{4Dd!`VaIN7D>I% zm--6II3}{`*7NO-y@oswZkt)hObBiQYNl`%j95M;p!$;CMit` zoC&8){$Vq_OuSbqlhFNw(7l3|>(#hyFdnq9jtm+{80Ta?!urHodj+o9rH{PYm?h)z zOET`?sQhoke;I>UQJ+7GLOyL!SnBMK^vUpw)UMa_;^46FVBDO|xS7qkdDt2=FHf6e zuk_JzdLEm@Jl4THcA62_@gv&5J#MnjJho{hG7vAVe-nAY$6{#P_B?)vj9b(_>CdGf zc%L!r1IBmyL8~8##qCl0fi(l-Y8MZPtR3u#JyJR#wsw}&KsI6wbAsVkKd@#%H0c=X zH&o3&q+H`Kw zEma@D>mX~1w{;&}F~DW@!9T7((6?rw?$LCVVCUr1S5bAHN;{?+O)-1HX){e_g> zn&7fKxTdJoYWrnHw={jg_#RYtQT>+P!P1qhnpD|MX{w-)q3r%)GrR1hzqppN>#u!( z$h`Y+jCIn^M(H`}NNY~2=7+NXi(rZaz0MIGQIttLZB6)a&eAUIxnVDDOxBC%Xj|{e zI!Vtle#{*21LlX4-uKnqFldg!_^;;}FZt&fUf#L4=rNfWMth5H%Y<)b%Rgh5(;z_IP+>Xr~VrA=^rJG`u5jI$7*K5iqBwk7G_fO3$g|*n1A{*9`iFP&4Ukk+RFo}SQnZ}oLY1f;bc;ez7>#|~P zSs5(gwy4WVOH<&XbyrwS%@xL7#ic3`>r~XIzpMmSB7$ReL8TEG)T0H(@L6!~N#tw# z!!+D(e{`n1jgnFhXc=&%_ZxF#d2nRP{JCaKTC2}fMHzno`hKY|u@)n@-xhvxv?v<6 zd`sd}UdlNbRoP=oNd@a1#%@9S9&fUy1)2P zhcU^;T##42Et(dDHur<@J*2RXF=}up$oF=y=(ZPH5ZXMC@Hqu2|QWN)md1)`Tik6ZHo?kG!EKuR4b?|WFBCljt9pVhoGH7y8j$_Lwa!`Ll27W*DPRthZ$ZH9xA zuY$-w@yZ8gp#`DME;jd*2uIGBxv`h?WuVy(!k_0ot3RYTb#v@74r-9tyE2Kr$X~2NEP#*P-wP-R55Rh zLW_q<-rEUH)$(pvXg1LeOZ_+iQpLRc6`K1%s*tx)p;-qCPm@ofCCi7Rwq*H$mh4Q5 z#=97M(98wN0DI}Y&N9<~z>rIxT(o+rXi^6U(|z_UKQ0iGpww(oF63!F<01GWy} zY~O(0JP!D0WH}22G(J+b>Mb+y0*LU zIkF)Vj;YA~JewmA^K5kO!~C$Tg=bULp(y;1ZsLsK>F9Qzhof3BX^uYJcXn{_M$*?a zqz3t#hlVvHQ?q_#!${IHawpIF(G75FwTx>W$6MDOz78MUEpALEwNB!!VPY3jHuoj( zPbQ92tZSLj z{I+=viZ%T!9bToT4@-e^t<&@gO>flnc}+8xSpNN9(+!%A);tH_5t>^V;pF0bhDD#G zQOk8e(>rOja!Gv`_dS~av!?55RC4{VrekP)a-G-oxfn%X(zH8H(ZVw*{;i`?%QaHd zIW#u8uGh3QHo0U$D()9*`fg3P(3s>}py|UjHn|pQT4dG9wL)kb&{UoNCxs@zm+Jg^ zTGP8U{fwrs*YtDxeVb?Fr`rAlT|Pe-n%k})e2cRDAF0E8UDI~?9uu1Q*#0dfj&dFm zeopJ+XAm#ljnHCdU+ei1NJ~8oq<+^`0>xK7w8zg=6TG;gLvyHa& zumIjY>!)ol@scBn+2!R0)%PzCILsJeYMoxxJbqAkM(&@Gs}j<5)0jKXJ^JA0ju*_9sL4*@tvrt6VF;?ceJC zP&s75{C+J=oaNeSJ&{-KR{VasOo;Tbqiq!A=RZ!@)4*&F{4I8q zxYh8d1|5R6=uUpf{8sWxl9@lyYKY?Lv(Hg%Du-_kI~U(kk{m`x zJKsLZ4~xIW-pdPi5TI`+@f=ez`MzCD-OxPQ>VpngMxy4xDg(0(aX$V|8dA z`ObQ>d|{~>z6IG9uTUF%#x}2$Kkw0p!?Z`LuvHe>#F=Un#~zv`gUmKB@bmns^oX1O z@+>sXISzM5&C{Q|dOXRSc7u4r`_^AR`p9S3081R96~_dp%`2$$_I+eZu`f1jgt3OX zbzXn*auZ*>PDR24gI*)+Op={G@smvO=Y!PA*Z_J1_Vkl}`(5xV;h&#Ag*|P#kB+|H z;#0NjwC^3xXu?}p^H+FSs1Ncz!w&nEko5c)Q{+Y`c@j{k=$GSsyxU*eeE;LgY7g(r zpHoBPgTwv^Ua=&RZP&-gmsnlc73e=x^SC{c^_J|eUF4x1H%T}Bc-$s!=fDr!?i6)L z@oZkbPWaxZ9u9=BaBp^X4zlqA!?oM9*s)K+6xzyHtL+mfORqC~4%WF*hKBmL(DTf+ zxc(wYe`m=}PD1zJ<`TXWRu@&xf|sw2__Jqk@u5ms5{Afg8%#R-=n;FR-tS>+r_XHE zUdiV(KQ#9AnT@vEFK0oACZca`6Y&%oa3Ul54$de0^MW&mfqCH@ke!tnotp7+ywPpD z>EoMK`L%UGc6Ajp)ogpl+WIVXyV>cr)9?GPNAyQoX_s@EQtw2UGVe9GjB&N&*rOIV zwm+NFHyn)O%$=MAeS|%8mt)+#@qDkh`yx5ZyknrTW(qR;+MG36ZOCwTjYpRpGW_;% zhAk=Ds7*3G2i=ar!=z513LDI*f_yorCu^r{W#G>CD-Qd~^bKdok9&}5neT9|!cE@f zNaR-YJ!xfc?=-1DNfGc2@a`FZd5qXAe)r|Gk~t{n#kUV+j~ls*$?#K-=C_M{_jUD7 zv(smX{W1C%rS9j1yZXiwWS9k&!zINh*+!f~`@U>=k);m!{iV(K*Y_oaw9hN`eG-?# zu>Sa@bwBlY;zIr05YWD)zWt+pt#5+xjMJ`$&92@wa&~pUV-#+DVIF_}>q8jui9r>^(Tl& zT<0_6iOW%wK^yFUJi)%j>FWzSI;8DBZSmWtNu81U89J^?eYWErIxfmM?{d^rCRYx- z-PoGp8+iqL%Bzw3?7K(!Y*RCyBMo*~(iaEjQHH}1bs_$^z`K?n>PF7t+xcSrOhCWgKqWaE8yBpfhwJa?@|BuD#zJDN2*4)P3SB9K3 z2+SMbgVZ14sSjvtuaJNJ)$4+ge7$1(rfd@(O&PwG)a#Nf)N3jKh@<{^h4%SR&_4v_ zEps0FM9!w82OHk6k$ls?4c=_K%zQtXx94^E3Tl_*Z_&!CB<_{mXQsf*NZk)C!?)-= z-*%4bSVj2-*3s;cb}RixPDGABj#6*rTt-m-J;!(w;qlMgPDN8+1{$CA(jM%%1%~aj z+-G0r9>4YYtLm9@H~TVo?Tnv&V}W){JY549`{TJQq@13Ja9ues8QZA)zt0TF%aM8v z^=-!A>c^@shUB007gA?lWsW1~{(U!R)w(t*w|#L_vXT_gq zj&Rkoh|11t45Ph2#rgm~Q@gDvgrwDXDZ83|&8gH6e|v6`_RM?sTrRLYs0%||XwRE? zufO=oyu?0JJWzwv3-?4DY$yILI23`Nk;gyEXA^C`E3E z%tIwSyKl73)%R_cN63+Ze?`7`kG1A1A4AVbL0(CzCu?nVb9FmBJe;+n&l$Z+`0Lwe zIJUH}5P$pLi4SMIoMPnl&NB}7?C?|{dUb5m=ZKH}9*fyL`F&{4m!l_K@>(-mkZQdu49dqGcWTTFOxr8G zTd32sf%y8?vlpQItUz}!;Vx09HJkKZ$=#2{Kb;Q_@&G0V9m+=E%aUXwvc}#buhRO=wUsz;tF;n=#R&8kLE^()O-oc z#kxKIPGgM^e!57?pZ%U7nIUZ}A3r2}924=gePvZ9`&@DDk5^TN=4Ym5|9DfVIhBR? znnV<)^?s=RWXr#%%luQ}{rocj*anPiTe;Rhf3oWcYf=2aJbd=pFkjmh8m{am^k;6( zJ^FD^y=aIJ8?%Zs%d0{5w_P7tA8q;KaAV7h6X3xP8^3DFhibgp5Z-@V39L7EKQHZT zt<*F600~FNj<=oTS3Q5MmveQqyFX-|)ySTN>X$X|lEurZ&Sb7-??Kl1i862fAJ4%} z$ctuOReujb2-`nfvPUZG+=W;LR-ir!$aRYhZ~*t*8LDz$qoN|@72zk*!!Z=W+b0w59s9qti$O?)n10DoBp0X z0Aq_iSF!gx7WcDGkG#S(pj1waR*6Bizvf_@ee`qcKwpy+}2od%D=A?hrIN@vw_&h$%itxU*x45^}$M7 zv>PeZ#l=J`xfx1s&nl zunad1m}nA02$o$EZYDA)g(z6TBqV_u2uaL^i$Vz%Ya-YNOIxa(-`HXsC~dI^6?!-| zR_qDNQB-VcrKb@&ZGhMlD{81H|NE}>t(iST0@(I{p7ZY~+3$Scx?lF%Yp?Zv>%+;{ zRVyr}P~)*xdTUfdxs1cJz+YVLyV*lW&G0H)$ckeLYeq?h_`x=`$HToXXE;TN1XCPG zD351eAn%BISrYz{qZ%ARQd&|4Ysem)kx^1wb(6oW$QK}rR*D}F#LHC9ab7nB*2=4J z@^^WeiHKR6hGU6t(g%TpU8CwzNzi#_DN(qaJr++TinXfz%gP{X#}mevl~l%BHD%$P z+?g|HdO{`LVyzeLL?al@|9PY zuPnh9QIRJX8LNcHYDoRDh}QJnnI3QXvb01m8qGnV_O4G_b-ijy*ov$y^yuQ_5caV( z*o7Wjg`#OOM#wIXttzalDlbYdEUoYrDz{KNkX0+mV||I4$}L;r;mNUx4^*BHdH0o< z^0X%~mY@f$Dk=38!tOLpeZ^Y7!qTPHlpe&n>%}nH4RJ>p(N<1407@~JF6Ck8j2q{q zmfl{8qudeI%Bm&F)#b^hRZC(m-1r+T`nqfSlIfLv9F#1iN_cDydX8#c?P$7!&Q%fm zKGS7$p^NCWa!kf@(B>#isehTTnjNaRuyTb&c6%kyqBk{;M^Fo2-ZYn;()1_ny`qcp zcv|E-(O7xH*Muy5!HlB!H!!3eWsYLLm0JrG;gM zmFPuCcUeuP$!ir#j)zeV2c8P}DM1%6!GjOm=}xZhXMEmoQwQKPbIH0UrM(w=_KG!(m;tP*1#hgId|3!&+YmEeT;g@MQM#Sqr7@vVHpNGM2+zY1_m(m zLf5OZR6A6G50?py?C!Cd2!Y-~Sj@y}j$o8ED%Ogrb}#8u8C%wCm9=PW5&lyql#9DH zw#K3v0BbBB5hMsnUecvtECr!B!UAs!o~VGZZZVE2^HgJurqOmSS&R<$C43<)V?FZm z!B#s8JblhxvzZ?h#-mE(sC!j;7|;+B+-1pQRkbagw~CDoq9g>&Y5=3p>jYU5Nb z&+`}gm|X7Myy>19VBhSSBJJ}f6d%>34q{`9YFxonTX6+{xzndZ3b>qao$e!(u8o7* zZo^nBR_E1dwiG4;%ke0Wy)hlVFNK1@DdVil^3|RcoaIE-A0Z zAZR>y#}7t=U&b>Mk(d$evP_+bcy`1f{FVN)WPeriYIbQ$h$Zah*1TJ$u^8o*Rz+cH zNi`lWMR^kGu(Yy#rKWM(^Em6$cdvOOi!C*5S(8{tlg8=ce0<^fCF3o&fmeR!-C=%W z=J5Z)h4U(`??KkG6nHOWEqxm8VqiV^3xVGOV!_a=fcspHc9ihD8(0lY zhQA7pHqPOsjJDUO(Jltw0J=bF zdxb`O5zr5Mp+`gGRdmcs#+{Nvs2ZkBET=+wTpCJ4w z;Zt}cAO0yb3A9^)jOP&W9`Ktr+6_R~=Q_bsAnUalxETHlG}<{phMxgk1b&uAd${n2 z0PhArL8E;xUiXzW}%Z{6!k=jyTKO z0srm5JHdxNEuwt{_z3uWfp>tvN29$>__e@oaIXe#1r`W@IPfvhLx6b*m!Q!;icMk0 zS1OnZ+zdJq_)Yo;vR)E^cm%xh8f^-EZwLQqA9a3M@*yDWc_)zm>wxp&f0IVL8mQ_W zI1l^+jkZ_#Q-EIlWoop?02yBtkntVIf&sA^_+|JzsL|dJoC|uNMteJu;p%`)Zw>Hv zxL0emeL%)DMUc7^q}{;V;4ey}eF`7$41W|j2mB)%?PlTc1$yzfN29$R$aqSDv%&Xi zw7o#)X9|$``Rd!k00x)%&b-HTlCse1vmJ7YD!1IT)B*J!r_Rla~Z;2+Uw?+4xj zdY?v{Ive!24LA$@295S6AoJq`GF>ll2HbNr+F3xAPvA`O6E)hyh2LBFZsB*t==hES z86WHqs`&P4wD$lR-*(`1#K%K(fOehmvH!35)xuu{WITDmY4AT+qfOls^3#FY;HPM` zhXWaZZ(tVqZjCk-2I#-jZCO*nKc~@d1=9af;FrKZqS0;!s{8}72JYRb(QXv}b|BjU z0tZC94tOo-O&aYrKzt#2t2NriK&F!i{37^sHQFZ6Tly%(Z+h5N-rMBczbKKEg=1OV1X|U{C17@ zabPOwV;b!iU<&9%8tpwmhT8$W3Hy@BlK)Ft{huo+1I zjli++zeA%9eM0qKUk6MEe~m`F0+ESPqv4*X(ar%f z-_$J{4}Q8vdyMcCfaAcA*Jz)M()p%tQ6l(TG}?8*>p^eQXx9R-1HDe8y#_cIG|wLf z+7-Ytpi4E{J|Oc|tkKQ`vVOe4QQ+rjv{Qti2xPmB(P&e5iREwuM}i-v(Qc2lu#SZH zl1BR&kk7+WjW%_gAPVbk)@bhqGM+{t){wo_X#&~}K<1|o$aFVpw5x%PuR^0;0A%>N zz~SI~HQLm1+5&#MxKp=j7~DM??F8UZ(D54WDBv}qEsgfM2(7c#q0v4C91QnXjrK9% zAkarODw|==n9nqWt^@xdkTemry${Ip&~_NhL)|H$-2i0%Yk>*iuhVE(0O{Wc#1zb1 ztkIq;e5?y|s^guZ(M|-iUk?}e1R$m)O4kagbgh`qIhT@;Rk~J~QYc+3yz-T<6;SC~ z;T5iQt$=nD{4*boK)iC5t`*R(1Aw;M3?ri(P)1tQJ9Oy>b$1@LP?rn3=P0IUTr1a1J%1%4Hn16&Wx z0wS+{ncn@t6ySZpMBrMW2Z*@)4gszP#sgOY-M|_kz^VpDN2F&)N32-~%`KRvhqjjM z5bh^jt+-!s)#Ci@9TAPVx8Rg*oVOj(PL9%7)7oi=qFSJ%b}Fh3_og0upmWyI^Bi=} zHbvJ#+w5rcG3uhZo1j(J;y!}=mc9+t8|zye2R*j9ow#p{-wqwJ{qYBJ-_)%@I;|9#LfJKFyk?(G9R1{!U%hT+?wVYlrI+rNOkjc6YMJ+qN5BjIOc z2kzTOZ6AdajXK2p=tHBC?&#Vv;E&mk``$78aBmp94H{`pWB1^$wbNS1p2F|Wu@`V} zxNh5ZaJ_C1?#SHr%xy-;th2@q0&fBWkKGx*hjT?mE;|L+mzc;l=L9{aEaA+;{Y9g#O)y z-nD(8$Jb{E?uYuc;C`&naopScbl|?TZxiabrSB2kPxNiYeSh3R)bfeAR@~3Ub>eU!V6{kR_)cog@hL3^Oz zw`cI)!Qc!&iu<`CozV5$KlI>GlyvAR+)sE~q3gG4WF6X|b<`=;{@&~NT^}9cD@FUe z8ql+}-s8a@&8U%6?lzQm&xpNfz2@jcDF3zm{zn;ySoFf?XexKivjzQzm|j} z$XVN!;$CAKFYER;` zGX@X0(&;0CYdmQT1V+yyRp@<#wEJYC4+)(u^sj}^75W{azby2-Lf<7c1z&j;3f*V0 zru{-+EA+iWPZN5r(02;`HKErEy;i~wO7ezv&dtTaUz z3Ef}l%|Z_o`ujqU5&DNhCzHmD!05e97I&lbNt=yK?M;F3xXQzFdj#u+XJKzajKPLccBaSA;$#^mm1RPw1zG{z&MjguW>BzYFa~-822) z3*ArXzX?55=nkPr3mu8c94w@LT?fJaiNC`y;JDXLjOeQ8-;#W=<9@jUg#TyZV@_7XdW`k`kEs2?}g3~`dy)? z3f(UB452?1I#=k=gq|xje}sg+3$nZ-qW5 zbi2@>3GI^fq3@;QzeZ@h?m~3dFAD9!$0e_Lc%Y6u1Z36qZQL2gTv*!(p??%cuLz@S z!{{kt^uLGE?}gDP!{{Snbbc7kVmR}QHI5K^VHnM7ar%EIjOO=~)BSg0w9%2rE@?o5 z#-aQk)P}FA7Nf4S{AI<{Z=W%9I&^Kts_wj+vJx*&Y$}D`Jj7#^8Q-N9HPuz{l1~X4 zSg8^-xv&w7U0kofs(N~P4a8}b#(R)Cv#i?K=2dF!3n1`pw*$$OoVAB zi8K>Wnn^v)q?KmUg5g>TZepGQo&5?*(nq(%LWG0$qGE6cVCiV=IUWQ2~!;~b$M3`Zc z$S@IRm?Sbx%#%#alT6H$Ow5x^%#%#alT3t@OcIk!%#*|hwmA|)8_mA4xSSjC%Sxmn zQd3OisVOG*)D#naYOr$$8Y(r#;q?(#yGLo8N@|J15WtxzaO`?-cVJDly zPByuiY=TcVxtVODo@`Q^Y+{D(BGa=>M45&&$)uWTQq44JWTvZ;K_AOtTvG$jRBGUP zOAS1Nsewl?HSox#2A;Xpz%!c~c>Ge+Oa@Z%0P6mq8hF@JgTqE}+(}{&Dg1CDZw$QrzI} zqJ00giXTH`4V3GkT&q;q)!Kh*z~VD6#)s*P)r#+l{bWR0wFGlr$-a__=Nl5BLgpPN zd^ldo{?iv^9`lYA=(Di+m{;dD76jKgjoq*tg>Ljf9z@E_Kte`*UC2$~!+`z5Wr-)#v%1v?avz?R|ZfUZvKX!P)kO5m|vV?YClE zz}PV^2y=UwZucOpYv77q)KL)KzLC&T@G1SPK`ZKEKh}2=`UL9-4f8{Pb64!)p_5$h zUa<&k;@bt8^3%|NL0vXXgLnYegA;u4`&?|xP~X?59k>V?@9qB% z(jIE%t@&lpHb7?|$izc8#&;id_2Z$}^b6QZis*dS4f~_MuSXp4K@PqtAt%GV*4^LN z-#Sq6Z1(wD$kDI)zB0$SZNvs^7yLfz`-ST~R=*!bu^7WQfo&g~kU#xRWo5bw!8 zTSu(7cAfuf*0+4Cvd$0r-Re%?nQUc;Is!T|@4%iaZ3v98hMXPQ2laq__>re^Yu9!z zM}A@3<(1{X(g;1MvzZ&~9`l{l;R}(claBE3Fg(Ke;h$$D_t5QJ|8wUNI>jcBc$_iP)b{@a(jwAE5b<|F z_DA+9>Y?FLZ5WBZXv*-K_#@JGwjbqHZF$$~PTI!xFNduk=##N7J*Z1;@=RpBFT%eM z@%j;O>$|~tsc&!MZiOD$bCN!6^nS~v-RAJ~GjYG1ee(^vzxMwj{4#CWGf?<_L7d%w zReAS7SI#_Jt$6PIk7b{KGQvIEl&uvyAvNd&w7Iq9r@H^pCdIqZNnn4+8qDq{=zsX& z=T7Jn`aTNvM?ZgregevuX1!GR721wwe%A=D608=i1a@^sF>Qo=h_Q@zfj_#6v1~HO zm08**yBT{-8({B0!3TX6>RIE=l01$-el@nmtVrBgH*`G4EUXoL`PP`0p})oRaOU^1 z!*ZW;51Wc}6T+6Uc{r`upxX@oWK?CIYET`|j_>0gU8hV^+Dd>&LC z!!Fso(2>-9+Vp_#4C;n@hO{frdJA_m<=X#X7g3rH5y^PRvhk3>@ z-TAB$KN39GT^-|nVcrw!IUa1Kv)>;cgz=B#VO-s$?;tM|@2c*+qnEX>C30bg8HaFg zeQYkC=Qb-RgX2^q#@N*|#$NoYwM&IxJ4lVe%iq8=f-&@lwW~V4u7PKljP(8uvTu1c z=+nzz#TW^GF3!&IV;tUqv9AVWA8gjBv3LR6&X2M6`G}aaSkHxsPHlfb#;%t5OUL+C zlKvl&e$!`hTVvi@_2`JVR{fRZz2&NZtUx_OmyY)y=m6*R*w1l9#T|op2ggWLF2MUTOPnuuiDo?yMK{?#I5f zsy|c5;r=iV&Fd;1J~yA<|2%9HL4O?Mj=Q&>GrfcH(XH&f1?Nm0&oO;Xh>3?SNo#IK zSMHFVNN}Ixc;i|TgSnHR=UzDM#hJV_zvPcwr{_o}-^QJ7gFHX_Jo5GF{Vy~zpYAni zr@IO}>tMfNLzMOOX^us%$g^iK7EN`)>)#ydU(?CC6vsuz;RZdza-V$?;hQj5qJQeb(cYvQJFNj{o9PDr zF1~YLvv!5QYq31 zoJPKw-fqqjZg=fE1N~dm4pUp``yo1jS$EL1qdv^8S{xGr! z`bre+dPVN;3_X`l*;8a2)S@moI=(|#hge%ps6&5h!+C95CsEt;;=JROj8~1An{?-f zZ@Ar&svWfbtnhaupMkE@>*wY?oqQei+|Uqt%>~`kw;>&j9Dpb!zSq z%7=W_CFSGz!n|E>J`w1aa|aVY?rw}weOZ5NvK?Co={dwMnM2gY2j>vq zhD`}~Wau2C9&LIxa|l1imhqT7`~dyO%q942`*FU38vlP9abP>jd&yh@{G8bTM{@$moS8t`8e=E*e zw6C?#kWc+=KJqO_L}{KtB(q^9JWUEod1=f zn=y}Bj(JS(`j}z<-E7ldYX0YQ)!`^p{r%e;<>Oe`-5Bq~yvoOKb6`u2)zi0m8cVYe^^NhooXN-&NdY*x`ri8BMDgVg)BV_LJ-OJBCx_VDs ze39?K&p)>qFLR4AC=VkVRo$OX z4{@U!=RB-I>ob;%l}@W=nDYu(2N`BNup;0rVW_9~^pjuQt;s+~deXta+3F@AfGYP9zNZTPDO;`>ACvjXiCnC#pPKJ`rTJ(;`%crDzwYqYUP zpyDqEV!y{rJyW1f{Zjf{sL{>>VoS+8MWdYrL{i>FjrJHI{d+Xpo%j&N{K|Vyquq?n zCgy{BoD+asfDnE1)@ihBf%x|GuG45&0Mp?w3&?z@h3i%aH?Qyfc8T zw=9kJ6d)Ffz0?B*+GBvMH;+d97&gi9zE9o(Wc_T{Xy*V`d_elo(rBjxuZRD5U>fio zCU2?0qd@vU0%SZb8kK$~`Ng1F-U5yGLLkeVr_oLVvb^p1aAvu-02yu*5Nib9T8(xo z5bu1Yj|o)znCxfNx5WOb(zgWKwMdNhLVZYdU8N5Rv}b@um+)q3v{Qhn(qxbDsTT=% zyA7FR`lo=%nzvP>eFDhv$2HoAfCE4`YqSrFJM|_R5A`H5$548bK%4rJtRLz}0&VI) zG9BtaqHB6_#vIWe14I>jJsNH5L((7hA<>n*Q5x+FnAp%?r$*ZgWVxxA$o@*bLzXW} zyL+jG1OGPl4jEqu5M9CBuF-A-GQLw9?V~{YI|4-2cw02u%|K+qOZ`Nky&cH*TLWbK zO%Zyy&^yqGh*RY|Jm#f{8ZPa#Vg#Xta+2Q5D`6jdn8-QFsq(w3~p)x_75WWwVR! z+r^#wYV4Oe8kOD}-Lu4f3o^;_)d8_?=-s5zjt8>*ZXnx-dRDAA$_%i6Ix&%?`w8G^ z;C>*Y^zPGW7XT5|yGWxw1IY4cX|$swvSvg_EGmFjg=;@FH8%CAgN{Z^&m+)L*%{pg z?TnV_Be-i#mFAv@z}J?g4n{YFe-v#KOH1^*K&6Ae6BjB{hb>P0Ke;qh``tQZPHhvQ{L7dtt%>xcW2c&htsemTP z{s9N^`}lwpxHl&pf^Nu;ghuMFD0@^|Po#G6CTOZ08*&`lBCSJC;ofr15om%m4?P5Z zmF>fJKy##V_)h2&H4i_8`~Kkvan~9}4W4b#X1U<0g*MB%5uMOd+3wi^PTj~Y;Oz12 z#qV>YJE2|FG-eMpRt}D7#=UjSDcl>!?8N=}m=m~fAG>3$(HuH@{juxu`}%X&pF-t3 z^+?W;MuYt)22EZc2px~Xm)8ZMzkxxTR}VBM{r^O0%AoQ;27?d4fXNj*DY4|xL@m(+O zJUE)yP2%1r?lZ*w4sqvm%lz-f;LPhDabGX)Mh^gIT&U}-;$9@}_mI#}3f&;|%|d^V zH1cQa_X%+~^*aEuD!E<^9=xbGNqP+iVP1RjPnzcu@LGX?(nm3f@cID%q>C{~^V*7k z(%8IH*C6~ReGD%VUihhKMd0?5&~+GWd0j95JyPDAg&rexvCvb5ZV-B*&J4uXZW3A^lf4EnlO4}SbU?x==3mpY8d^4Fj`COaxy<(zN|DS z@M$cPwuTN0<2odDjioI8-M*@%vZ`bn4oK251x5zB=9WS{{Ytr8XtQpu)eo$Vj$D=Y({j*#ayF_^w# z#6XP{DXfNtdkKxh1PF+M2BbC}g>dwX(9n~D`C~T;breZlb}Z>NCb7vOxw86OHp#0`j(nLA!X8pw3Lb6$a$uxrKV}0TFz5_0y_jfyRswJ zjIqY@FtsbodESM|Bd=D5!DVQ&`H$Cvx~^8vbBeq#7$06Q))b8Qa~Q+tl=C$46spwm z&5KF!<*qBqdH##!>!3ukJ}f@w)p?Btf$tYwI^c~$@5KAA0l(>=ul{trpFBjo7Zbtc z>u@gqdGS?g{)gkYyc+3r)t7Tm0N)6^V;;mAzjtJ>^|%iY&BvMfF3Q97$X+|u6|rI$ zUa#(VD2o{}%yL=1Q1uDcA0TIleQY#Gh`bvzu+8FLhC{9(W>eMy*zZZr!af4_Jm$qN z$~tgX?XmP)@hilg=!)&-#vY3sdn_m_ZOEj>)xz2bG@8v z(Os_pW53bJ9zD_1O3g+b)!3s^a;7+coN@YSL+Kjp-a`K7-Y{%)Y{Ndi*+b&~nMsp8 zu8()Mzk>26D4A89eeQyMOk0(;H3sLh^IYWYX|?lAd~IJudi|{To1(2e$Q7iGgB^pH zVG{tdoDau9Hs&U~8y#n`JUA-P2-_zQ62IuCEALkyn0((^L zk?z@jT)lez1a;N~xv~w|t9oa2-D7R2)6Eevy;gw#1Y}=*sLylYPqVWg#q?6yUSfWX zOb_MlmcU+xF5jR4A7|uu$-fwz^;h?W>2JDv)G3*?lS+0^%ln{DhwR~@9hFQj9tWJi zpS70zd(N|>jl1-hH@d1@wr|K;!)R9}(?EG)v?FwgRXZ-B%rM$A%RT+RjnbZpu#&L|Ow)Yp^{(2w>BW22u&vv$pA_EKxsXrY_3k}u*w*Ohm$db*kQZZHk3(B?Kk_Wv zx;LJWEojp^v~|9#mul-#Xw$1Hm&rf&Ro-N}R?OkYUd4X9bH6pbEq)Dm_G{-DVPu1H zT-Gy}llM{SVegF3r*jPWXU65mcoKs#MA?Ucj3x8h6)&PO`@D1i6LZ~rlQ0G`k65c^ z{insaY9BijIUp?;^)l53Q^YRHWV&`6nJC8X?1Suoh3F$o&^D%@Fg}ixN zsY#Y>&T-Z*Eb|HBV9hJ6!g<7D4r|Cji z%=Ta>t)?X4K_81;6+AN;$9@;D8CyKg3f-qtQ=*WKD$POex{nL(WMyJ7LH|ll1meBz z9i!2{fCV!0xzN`dg%5cK<)3ST2xoIGknupiLGg=)?-hQI@Ts#* z|6D7?=Y8@8OcaQ%Ks+?bM+B++jd?_JBamx`J2cwcfq2(@w`sH&0_l%uZqeUdjkZ_2 ztFyP@-}ZoJ{0Tt%j|XzCvA0Is4a6K!oxKIL@$9Jb920B-(*2M|dm#{e8Oe#_?h*Il z;(h@Gn5tJG!?kO)xwgafx%P-A@YZUy*8!0QFVCa^+QmRrk+(pjy-3^_in|xc_)`Rj z2y(JU{yCS9uS26<3S@pURx0;Iap##UOpj+qu^kSguV7Coc^?o(QD;5@?S-IKJp+-1 zm-9ZLEo%kd9MFgYYn?gX=!m&_<~*965luMVs3Y=RB-ZSrPDEjiGU@{Etx>0NukEo3 zE1~T@I&eP}-GWul9X%Vd`l(Or+2U@%i8K0)qoeL)_`NM=J5HI|5z~nKq1YCzgzEEX z^eH|^dL6}jXnU^?+;{eFQmZLX!Q!9KFE92B`fozM zc)g8((q?V!WuXsB_-#V-dE_+<|McIYDBL9ec5&z099V&CeHcA4jAl8V{`F^U$eTfZ zZilY$gbmwzonj6xG*pzXr9p0v?ICXy#R+>wga*U=MR|e(y3#BceRdq`9~PUY&GLY} zhm;>DPy15u6{nW~L%T~N4z7ymQZ@_Z%)ZG)7jHhvO1O(G(I{7E{f4eE7`0Lzzq1NM z{h7rL*f0;zT1I-PSF>Oe@-7ecGO_#O7>`_Fnxx8*$<7svtK0PoD4$MDN%eR{#rPO@AtJ#$kS~B*g1N4wmuliM8Q{5`m%GNo5#M6C^q^+e z7q~w;1YG8YxEC~+$eWQVzMn8p2&^w~IN(2**ku_VzdqmPj>?)GW8pu_nv5hS^IHzO z51Q9o^W1K_nHohS?*V2A%lkRsohqTd$aeQ{LDG7tjV{%o}YR9`}vu-y)z>7c9%8T z`}&B?Iq#3iytSXTbw!Nz`YWGZdq}|7arW z5A$VZKkF>|5ccMGKY~6p$Gm{%|gZDwCdX8)4>t3JYK)$h;5 zbCpT=Qt7)^ZC10Vv7j}+VeZkCy%inqx}288CSTi-?F)}*?qAaxwQ0toF*}P-C2Y$( zmcFn0T<&xSJFF!N% zv9J98=3m_Rx1L|0_3P_?xb#nhzH{eqGM-)aQQvRe_Ues4E&IzC{?9%C^`&2a^)uJT z>=#BpS@=%BtzUjU_33-xkEzc+JZ_i&^flkR>vxk6tUcf3!I>|OeX8WY2Y&mGw!PgcHn?Y}JkgZ=O8KaG4~`irA~Q1tGAZ_R&m!oOC1&};MTS8n+6inGHW zzx(Yk{@eYZL_c)Pe_a2gWq%(0-37m$^xW!?%*i)@afz16{TW5Rc+;;oiFVCBwcgLLz7T)!hyB96KC%>R@ zNl|gh(q%sX@)e~k%gQV6t*ol9S+#o2+WYQbxBjaeYBzrEflUv7{h_-0hc|C|#wWl3gPl+P@JCI%cK>+KPk#Edy-)xAU-v!p>~s4M z{NmpZ{`)VVZ+_udFCKd7*Z7CKAf z`?}C4#GUV8`cDAz!grpc)dUE?=}qMqs4hJf!>mU31l7z8q~6SPQnHbB={BPAlwDa_ zxc2s?fi1%@erSy1nM_B-vr5YgPdJ`ChsqH?k^A;&J|ypmOUh1_XWUO@$R zfc4g+V&7JNiBBhkKC$ifx#x`;nV3ED((}e@UriZ|Y6Yf_|L8tfUzv}!O1m4Hb4LD4 z_r2Uw()gf!sZEBxJ?F-Qz*;0D6Xb!c{)#lKtK;ql1u)VGe<-geVw`Hzfo%s>F zK3Wioy@IG+pWfeN*Qc<*d{OD8MBoe+*Y2~J1DqXfo%j6&I(dCt9!q@P{dgOe3JS2V zX3|1=)gHoTNW9Da5;;?IG7-xW-! z7xn97o#A0@=D)by>rtp53^n?mG=ZW!MwimPm-F28H}{v64}RM+scXE7h7pPS$(2H_7Q zzTCJ7RgVmRIx==Q^JT*O9c9Qz_%ra6+r!!l45?Q<+6fGcp(B{DXygm+WAf#UH#}dA z_lt=4G~#8yFy&^v%rE0L`DL4({?QXdVK4pt6$nTAENnR^qTbF9&N{#5B^UZ9&RPK9 zg*Nr0e{YM3dF7din9WZ_Snqq!T*P@iRvNx5DVnS1&+PN2-LMC9Zw}_r{`J!id{X7w zb(uZGc~`Oxo2SS686`#K#U;=pz;2-${53-l9WEI`F5==((i~?{W_7_l>_wP?RhI-; z`au%MtV$SmgAvNY(tzd(?7kJ2l|ip&Nr|Tt!XB_Bsg+d16ezSgQ_n~nIu|f&YTbq) zC1vF`%Y0TIbZu7F6#1+Lm3S?CmOxetdl`CHLvLnq%VJ!TM{?vTRza|hacK%-5(oc{ssMj*yQW#HzSXDwRpKU4z%|J z(GQjUFVJ2Dn)&BD1g|77mtKHsZ5&xqYvVv$-WOh!jqPdk^@XIo03zn47S_ajLpqmh z=y?l`ys%ywKj>*+h98sWbwdJj0~qB`+=UyuEm*KXnNKe?aIzi@QnxJ#jbbqbMQsSc;L7XRa~$;iUBx zFc)S)&C`UZMKgoT#E|8yDya@Edg`av`Pk)$Jjr~t4aecjtUl_)_P9dqeEbn8)Pt2@ z4Fj$vcxH-AN~;SYomjoPJV?p$n6k#oWol<^p;4Km1UYA&@b|5EPMDOAl~7(XZ>2n0 zxv5pF%k|D?R9uRGb&%c3xLnKdq5+ay;O52l92fYb+eKUtJ)xemVq$q7QCN ze+d3-K~wO+gGEyA_kj$opYpf)=kp+s5`JC%)yv}@7n3q)+y=-JoQZs3DCAv~9Fu#Y zmZi$ZyO%N$Pk>+Q+JbXhtb4~?lXc%F{MTZh(FgOtzVQ1$kRSP@D^BU9_i^=AGDAOs z97$ie$02+NWQH!f;+6Z2uDD*WLeAt>$PLB8y(6;s>*F|>WW%{Iis3e zT*tWu&ZEKl^Z6TaHVt+0&xYw*a}AesU8B2xEBuXvKj+yjYL24L*2y}*ybE`9r397@ z@5ewqh~xEBj`Lk82ZL6>4b*a!c& zNWrtCSELe_^J_UHtB4wgU2BTqwPhL1fn-l}cGI3>3*Jf|ThZJse0G zo*_Utrtb+F?RX%j9A4UM1lrW|#9SucE4Y!>+qKqR5;Dgtf12Nb_l_&$wF&y)U}F@VzlL5()`I?3N5eCl;F9_ovcpDFxw z;SU#ng7EqMNB_q$kYYZRj5Qebopwm0y+`;vh2JQAeizbzh44#-e*|+V*5@H0vhHox zXg30pl(OFkRQCH2#LIPhpuG@?KX0B!eAgX|I1VYO3lX)Dg4&@hy){Q3!teH|4t%vW z_Si}Jryec1>)nWbJ@<#{fVR2YA^$}CT9B-Y*+(fTWw~ri?}pxxi|S3Ayx8{(`Of1v z9lz7e{B@wvuc4B7T`TlogdQt&92%Dw_TyCeRG}vdJzZ#AqzZ!YqH6Q<^x$nd4HT;uKm-0O? zbdu0}h350as}BG4Z@w%4D)bC-9|;=Hf$Mu=^t3Q~X&9|PDMeO>kF+pC)xLtCoP6|+ zWRe~}LM4ohV3K1%q0o`qxiG>@MheN{N2lr>Q&foVz{p$L*O4yXY;bmw(F8r5nd)50gc;wZ^_!!oWn~LMo@7waSs%r5KJ5FKp zK_;H%;$w&8FAyN?$5_x^evcw?ymwR{_&w?Yjd9Z|044#Q-=lnF`Ol>2=kL545N<2q z_1@fRd|Z+|cj`v-q~DlwinaQb>Cui`07LT`N>C)1Y z%1iuAP8C1?QhyPSCc34vu)^mrs!Hn3ZRRnSX{sRd*sz%3?oEdZFON~8CE_1Y5m(HWikDGh|qs; z|2E-G|87D*qWl*cpq5}RuD7gQSzZ>TXJqGP8w&4s$p`zUx#X3hNO3k!R(JiI^9%NC zWJ6&hXqJuhlubZq|7M*0$JB{)67?JKxh{OmLxv{{XXIy{N8Ms?Q0teGAI@`rC-S`2 z53rwi4&S3q)1mhjZOJ|(&gw&4P1w^r8J&grc&4U4YZi5beUGg3EpU4mZWg|Y_|0U_ zq7BzG>gv4E4{%;6b=-Jn?%$g(&-xBY_kl~#>1;zSqF%kHG}_2B>$vog#>ExlUMlW$ z#hni<{4Mrqz8CWBDjv2e;#2GKj0dFhhw(HjBBHdy4STc^5vN>jE_cKsSBq;M+?~%k z+u8XX8#xWe%PSxMbWc*0PJr|dp>Lr(I+f|C497SFml_waio8HSusMZg#TdBc?J7@k zfT<)a!u`&Ke5jrngnCzehLEWB+&~CA>UZ_uH{N7Um=vPVySma}?OZVK>V4YGf_rqy z`994IsR+$C_e=_h<7yQ@hBo7kdB(4Hy?B#;sj2wXGY$pC4NRbm@#b>xQxnfa42z5B zW?k;OlAJ>?zF2T2GgG+EhQ%jr?TCA~;}}b%B+toX*j&?k-u2=`Xx2a;wg=?~fSgWm5c3cLmIE*!zAxNw4 zB=v^}46FZo(3T6jKmz@9y{Z=aq3Bv6y2N<4VJ^3JUKFqib|LESu?}=%y{8Uw(8f#M zpR$yVmlv^?VZxfSwDK%tu>n&E_w9d;**XRB1l+N%_+6YeUypoUjEGqgbpzJTk#AKV z#LuCu~q)}OQvpzYMz#~*ZY-Z|?C<9Yuq_+dWJ;H>4`Kg0}k zZto#DDPc)x2bkQIlEiayY$`3 z_n1EOIuUK6@;@$iKF_zOJs{Iwbzi`{G{T)xkACHLl|IUK-zVXYdCD_w>=Spo*5XlB z?PB_MrqFKnz75LhPKBKAD99M3g!#uiBf$rm@j9FrUx&VL(#~REqK>$w&ktuC*M7xy zz7c-V*7HUp9OP{ttpm@5sr{+zd^6fix5rS`9_W*4SmVI*QSCh3Lh_2aR>Bj1vJUV$ zU>H3g3Caz_zDQ+Gzk29+2kjH6w%7d)vJj!V$>DPb=b7-d(}0)WKCT5fS?&y$$H!+{ z&VAp2bKtSx@HEPo_YD1s8=qH(@u40HaNanEF+5Lt&j5O@(5D@cmhd#~mFV$=bCYkI z@M8anXUy}g`3>mfHRyA0*YGsf3(h?}fOhIqhn)FiorRwverXx?S>Xj}KOe>h>{ax0 zy}$lVhG$+1cqVihpE~f*LoVge(5$~TqCeIAzV9yjY3%FXd@}OdG>((1eh}6VzSSot zlrQo5&~~bxT-U0yuuOeXo*MK4&a)T?zCrO@pU1ud{;7j)`YPvP-IcSevEA5Bpe&hs zelV`IS>255u;0Y7l4Ak-cOJ*<%ZGYQ?_FJ*THX{w% zj(Qkl3hhpXjGKXXksdee(MIF$s_CpppL-Z~UGiZs0_oy>iTJG%u-C$OnCY7yw;pRa zmU6r`W1xHOfc|{1aja~@SXsX+`~2X*S^0ytjVA211kcG2+K{MwI5Jx!z%S3**hiTGZ3Vm+@?({vQBtpbiD<^=sfW-^R8I-c#w$cf`j?i_a$O zmwk@dTQF85sB^*w&`oD*Ac)Q8W&-lz}HoC~%?o~knv-Fl)!V#V_=8J*f_)f!~0`~Wc|(4FYj;fqJ6m6$a-NMZup~}4iBD1J|ErL zkKovT66YkSd5MIz)@F3-XRw!g1`E)(O#3kGfeiNhJ4g7(buw=;u7u6w*JnMt;?}Im z8(h~`E`+Uw5s~h**66&y{Q&9u{-kZGY1;_;9X-NIILq@U);QvfMVz-Hu2{sI?;3oz z7H#EBpJM>qh2=2Mk$K+DSl3rUnm283FUDc)CkFN5?XXz5ViqdwbuOLmlBlUZ>k@g8y+a;`s zp^Ze0Bb=|(22xDO7&{;^XIEk1k8^guXKCwz&xNujfU%NxEntuAY#aKoJ7lcXY2vV< z^bP3uF=%hTw*&SF(Duu*7kxG|7BT`_?!XPX1Ih@*#JoI|{bMuczy8-_wEY9Lt+BDt z-FxF<^oN|+-NV=ye6W|GpC{NGRP$xMev&1&{EYnuj@c}i5B-Vu5d0Xkhlou*wyy`{ zg9mn~{s$)+N-qQI9$Q>2AI={?YON zYR4A#QI0Rh_NQ}v3GJhLd}+n=qsNzo6}cEE^z*Fk)OGbd^IgSp=W=D`Gi9FluIvRl zzbn)kLHJ(qW3GA{b5+h)DMOP3yHe&k;(O2sJ7VOwVB5;@`Ccr*HwM!p7DNmm=acbq zBgc1se?Y#;hjGn~_nsy5%Ys#wnp+wgatWBvLGI>0@cCYY4(e$>Yj}1?Aq?l0MmEUI zOCyBO@z#g@yL4WTL=3BYHf?_PDa^XZNV=f$9be* zkZW}AgB-`vdO@ZfmltF>P7zeh>vtpEaH*LBuHHG#6sXlau~Pu^3x(ZTDbW6^(6Ge!#L)KtMnLP@pM$^w5e zD`iOuEGd+DBvoyNBIt82s;97WdU@GW|FRlX7`ExU4iaLQ0aEXU)I+PXs=510q0b7) zxH~L2z=8&j5EAP@tT}~i{3~l#df2}_OIepykmrD{ilUN|Vw~}?fITc|dchQ* zH6Bb6)du4hSk2XSXEHYz6Ev(FBqsuI1Rjag=l|~)+yYDof1ThAAl3H?*ebD zM*AR;@iYQ&1o9kt4{(U!DJ)Jg{^LM~JEqaD1C9p27&s1?155;-h}H2m0r5Sb+z7;8 znsy4 zPXRI=tc$Af9YAyiFLcb6UdIU_n%a9@qkRk*3;L)=`ydci?A@=?-U7S{@s$EofeV3{ zdnacBQPp0qT?6ezAgb6qMx*TkqDs8OH7flO6iw-e0PPcap{608I+xDpCLprzt<`8# zo(F&4H5%N4a5$T!G@NgZ4o=0uuCddbIw+X)^HbHu*6Y@hwx8q>XX2=Kak3I;^kM`(}z`02~ zdp3c8H2N4g$D>c+ekA57WQC5!9LIfsuY))lNlOeJ>fHjlp@Y4faX;Ss1nwvLwesxv z0XuQ#`@sRtxVQCd2d8Pk9{g?@a0GXK3jDEz<2VccNWxK`3qP=NAmSf<9B09|4Qt1l z@2$g5;odp?0#18BcJ1+N;q%&~+)7X%UCw>8=TUgdCz<_{-;qYen*EMe()d4zM&Z>V z?$hxw@ah!$pwO&*hW|`x%x@I^8=>Qcz8()HuOUKzS!j>YjY5wT`f;Jtgx)0d&7|>v z3J)Ex1>*igaW4>h2nGdSe)0bu@&Ayxmq`A;Ng8EZh|bLG`{Mt+_&+HAUy%4;5}Ni~ zc)cq01)+Z{;rB>*b*?*jzZ9Bv#s7bi^aqiK`yLJG?k2u*%o0(wZt?@QCoBT$*-;p)$^G)dAqL=Uh{v zX1j8TdQb{XIm-l43yY~J^l9wMkux!ei#eQKd4s}YX=!

|cu>mU2<$2${w!wo{ou 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

R=of@%u`QKfAE14L1^JqAS3 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 */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_CFA 32803 /* color filter array */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -#define TIFFTAG_CFAREPEATPATTERNDIM 33421 /* dimensions of CFA pattern */ -#define TIFFTAG_CFAPATTERN 33422 /* color filter array pattern */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/mac/include/tiff/tiffconf.h b/mac/include/tiff/tiffconf.h deleted file mode 100644 index 8bc2a0d7..00000000 --- a/mac/include/tiff/tiffconf.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed long - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/mac/include/tiff/tiffio.h b/mac/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/mac/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/mac/include/tiff/tiffvers.h b/mac/include/tiff/tiffvers.h deleted file mode 100644 index e965814b..00000000 --- a/mac/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.6\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20150912 diff --git a/mac/libs/libtiff.a b/mac/libs/libtiff.a deleted file mode 100644 index 85ef99b15153ec7572192a6b229d346e4616e499..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 474600 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%0ATI@CL!_1ix7D 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 */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/win32/include/tiff/tiffconf.h b/win32/include/tiff/tiffconf.h deleted file mode 100644 index 680f839f..00000000 --- a/win32/include/tiff/tiffconf.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* The size of a `int', as computed by sizeof. */ -#define SIZEOF_INT 4 - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Signed 32-bit type formatter */ -#define TIFF_INT32_FORMAT "%d" - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Unsigned 32-bit type formatter */ -#define TIFF_UINT32_FORMAT "%u" - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Signed 64-bit type formatter */ -#define TIFF_INT64_FORMAT "%I64d" - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed __int64 - -/* Unsigned 64-bit type formatter */ -#define TIFF_UINT64_FORMAT "%I64u" - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned __int64 - -/* Signed size type */ -#if defined(_WIN64) -#define TIFF_SSIZE_T signed __int64 -#else -#define TIFF_SSIZE_T signed int -#endif - -/* Signed size type formatter */ -#if defined(_WIN64) -#define TIFF_SSIZE_FORMAT "%I64d" -#else -#define TIFF_SSIZE_FORMAT "%ld" -#endif - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T long - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -/* #undef MDI_SUPPORT */ - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/win32/include/tiff/tiffio.h b/win32/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/win32/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/win32/include/tiff/tiffvers.h b/win32/include/tiff/tiffvers.h deleted file mode 100644 index 40edc813..00000000 --- a/win32/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.3\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20120922 diff --git a/win32/libs/libtiff-2015.lib b/win32/libs/libtiff-2015.lib deleted file mode 100644 index 6fe1879864d3ec219229a495eaea22f81baf7732..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1774542 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

Tu>DDfp=Xw(hS^22U`r%oY!rl+A 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�Q4m97r3TzcR$SZX(eS@T|n1`^y|oBmQTo$F>}AdsJjmW{}?mO{Pi|z zgo-ztdkA;;Bkc@^F9)t-?F|h?UxGHynM2_I8JR>fkh|G1?{)@9%VO_Hr~7HtE?Qi_ ztgfNi1lT1OXtOz2k(x18;mu_~;Amoz+2Sl7C9$7J#ZqrP_wtm5(3x$`p`Ff??8pGx z;U0O%S{jeChZMAV!MqkD@jdEB*W;usi7zpdMP2%r>TnGYDpIDSKZz7ly*>qMLf!-p z0?{_ZXM^Yw;gKM7VR!<#1uO$!0j0aJKOdeC{svqQ{ubmbIUZkt2rI4a;4|QBAUxjh z!8gIz!GD4~K;`iba1e-Jcr^G2a2B`|MAX5RfmGeqk>yKO39+7rs1vLRUWR#c`|5Iv zbIz?A;BD1Ax=L6KTwlUUYVS`7ZEr&iN!ad9yZP7nu3Ww&arq@Cy4{^pW0i?lVm7($ zM#T<;FJcm}U)P$va?_zbKeKdS*ms|&wX#qpo_Dr|wvljKXp3^P#pGlQ4sx=5CfHuG zEA6?=oYSheA;+04wo{?risjo^0L!sP6hgeGS!X9ZGJNNREv^0AL)(q$-`?@!%H`V= zuZr)8@35acQ@xhx(6+X*aiS}}Dzwr2oh z%rp`!U9{TOvDM@EhMr^fYp{drF+*$5$)6lLw8!J;Q#*6yoQ7=j=2A16UK`!nx}*vs zGuWKyy!0u*Wjy-x*LM)0k@J`I-q`s|VI*gN2<|@8k1NjZ7rE^c&0mT)n|myG@8>T! zU-Eh2_k$zA2S6DHeA(RCHV=a{c}BAd*MUC)zX(1Ct_FV!J_J4v zJ_e%qgx7)eB{Ro83BJSg&p_EoPl102p9b~Wo@c=m!RJ8Db?d+oxE?G9p9hzL8^D#| z3!o17p;d+3!HwX};3kl~doO~-?fnvjR|o#W=5tcu$2>DnhEu7NUxPA@UIz8qwk_aD za4R?(d<8ro+y>@?e6u|~1N<#G2mBq_2qKQd*MZEt;oCqy^%(vZ_&TW1-|YaO0pA2! z1M&UJ|ncHPs*tuOUJGaY~;@!ZnrQPUUDc(H+?Rx>u%;WiX9#4Cs z@Z9xpB{3bQJ&`+p{mulL3UUwYzp1U{=@rYLPGKNjb25&8IF_F)2c>U08;6>qWnjk{ za%%LY;pm@?BfjHE)bb1?jyh7-l6$Wsftl5*+wgV~Lo1-=bIVWH$QUtn1+=j-YP7;g z45>T!mAPmxCx)i9@+ob9BUi#mv1fBDg=k@$zi};@{3f)V&@mXl zjoHbnh>i)?O=MojdDcx%ypGcr@M{bkJGaUf3oK#Q-M){n@==(&;w@Ea%PB_7%aZxk zo_ms?7nHdJZ8_;3CmG)ht#5ja@8$8zY++WMAHWcP;^Tgv-bTW+cf z)tYtqEOzuU{m=C|EwQPNGtFd&aKx~aim%m%B=07Et%>&pE)Aqi83E3>zE5E-4r5CVx z7}mjxt>78pE8qp-t6(Mg8}ResZ^0UHJE#%#8mJNfI@k*C05y`{1iuFE1it~k4Jr?R z1hqc=4)`|sC-4OFw;Mbk+yjmWJ3!UtUQiYFW!!co%4J8QTq&OVw_3Hocb{|Fg=@>V z6Po2S!nEtcb;{a9sJ465L!#HL@j#W_bBFclTqIsS^nNAllZl|RA@A3D?#KWd$m80x?6NWCQf#E!aUT=}?|prOsi zbvdp~PyN#_z)POk<@xJz*$u>da9O^e;Ie#A;j(-`$7T6gl5h+4zsJR7PZ}M#q~fp{ z$MaW=>r`A17}vSDY|QG>Hs&d~Y|N5UHfE{*HiVP|8{#@#HpET1+?E0^8{%$UrQAtU zCS6{nlG(g;C)-e(4!db^J0*$TG*B4HidVru#~Km6*)$m7WdxfB$FOaX#&bFmO4mQe za~lVndC;Ye18pSSMQZ+Y=SG5NYyVQdBvblx&vnEXQZYZ5b0NZ)a!SzofO7ceGy25niY+MVVWqMcRvR$>i zPIfE4Gq~laYcG0bq@{WTwAc*|g;6KFk^BAFPUdfDDAH_hwX9mjUCdzVu8Y|&wV1;h z>U3J>%z?@8bg~vLM{%9i9=q&LDIe-ok?JGMOlGot3Z!>>&w`pvp94<-*MS#->p|uJ zc~IHYKD6yLa@kHJSBg2uXld&9mS!d>dx#^o91WEC-qP|q$8Zu;Vnj2WAO}%aX_!p` zi+NtZlcg>NNsVKF(`{$YSpPHeZhf0xBCqsFFZF<(E0-U{DxhPSc|eCgb~c^lKZ=8c z9oA0|yF2n@6Ytziy)?Ab1c=T~qOxNm|1iyQuv(W|?ly9F6C`o4dx$zjlF2^J%H;>V ze4(J~`;5xQu1}%_edR4eSXS#DEt~}#XhkO^`B=76E zjy1IJ;yTs1*5jIDTz|w>XUu;@9$x!)3$f1-`2HkGThP`r+9gcF@ z;V73~Y`3&To-NG`#}+G_*Y6&1y3RNF<`74v5T>1jWq(t#>F!%uYEAvfd3;2djxz&q z{o7bzQS@{(zOUHYg}$dB8IUkPG}+7s^yBiIOLkp+bM;>T2u$kr>z1G3r>>#4H}YXu z=fh0n<7B|h5`1Q@@0?Q7oyVn|d&nr+5ff}?2uen1TO^qX9CFg2Rxl4qOWZ zmrRdKOb88QJ18Hn*Zd`BUI@7p5!exhh3UOHxFcX*c?QUqd zZ93M9~qf zJ320mp=N|ucYm~Mb=RX+ceGdE(N=w6#qtAK*xnK}RpanuR4#TY7yEn41sU!p7f}EG zTYFbQ*)VB&cB4qhP@M)4e@Z`dJdNj`w}i2mc{YIScONEx-2VSY%NCnja1k*#G2H7u`aQ!o#M%t zdGbU-k$HIm6{5>GH=l`k4%U_LF)a2+<&`+g;J(e#$Fn-6I^gd{MuS1(8Vx1~lm?Rv zN_^#k(qQsIX)q!1Wv~F022%)X;x7W{gBO8I!KvU^z+zBaD<$A3U>T@-F9%hjwa~11 zlgo-Xxl+8o{90On=SuO84QM9@wBZ3wTSGQ%lm>JlSPMq^IS@Hi5B&F(A2kZf&-&fy zKNO4IUfIEH`QEgC&#B0f#9u*WEi2Y6#y&AR)4vx6qr=xmW*P&>X+$$i@ab7q!n}zJ zHq#nB+at+D;K*Abhw!^JgllGqn(JOwI?ySlyQ)frpQZ3!BI%+ksdrAN7BhJ(oG&BB z;i<2a0GZYI1*IdjRGZAX5qF{MJ_8< zj@fK>zHnUu| zndM6Hq;XrCEGA1c&0J{BVtO$ch;e(^v|l#;W2@>)Ken;?Fdd zqRr+`=I&inMQl4u-YEkAQkrYHvG;=ie7#8p{~z|=1U{_A=K!^!Kf}p6VBjSo+ zc7jVYlVp+%Op-B^uqZlYnLsooX)+<7VntgkRIS=gZMC)T zwzdUhD_UF8()xRz_ndp@+{prnUB3T6_mjzU?t9Mrp8Y-hxeUjvK&qo{KxWLFK=Sqj z8OFDO48WC6M$n`(f~E{>leW#2EKxMc2t9Y4sBgyZJ~WBg-RBu}&$P1#3tIqTUWm-V z61Cmq<~}{ygr@fC?N~XVGjJD0Bx7a95j&noWNdvc>j7r9OjCj~Izzh550Zwt#%hqp zXWKiC*NwPbHX5hO&S-4FhG8dn$3Y{Qn}v6(&BC%7ZAUyGd%mXb#ol9VX21gWpxcWj z@VcaZh!A2s4swg#43^3?YYg7m!ybI|@aeFbr`-YuOlecU79^EJ@-Y7kfo~+YN6uk< zE(uez55I}{?Y=0|g%=e9yQbKGX7E`JhTcBh3&%rjALbJCole-2mYDZ+!!X-KhM<}I zs%B$`Fc0p~-pKk5 z#!P*ccpndp04D%@fCmG=3p@n)eIW9s?@{2Pz#juKPuTZMAbP&CA$St-k9a>42pQH1 zK)AI|0;n*S^)~bYh&?|4 zaDuAfE4@H$y<9(jRVI&4(7bN^Drd)L|0Dh9D?bN6`cO02(TAB@cCK)8DE}+0d{A^I zL?`@k&TnXC*Z=kHJO53`9xmUvV-G=OL>M_W-ntY2mFD_3OziEaSr5T9wC3_cw=ae} zmPkIy#~#=dOx9fFq2@Xi_=j=AhJSi&uQV5~4WZ_uWFLMf;P;=^T$~Kx2%lqmb?{-I z_1In>eBc;}kFDoa_sy%Rv|&0@(;bZ;G?hFU0ZFd_x#+;St+Ag5vOIMISyJFmYf_q&CZ#Du_E4~7XIg1^rzt~RD|g_Rw+xG+R5b35 zP`qaM)EO$QLq`aQPUADi-X9nrMyC_I+eYK)Q98`&>#t_$KKkYAN3*b-Z9EogQUklz z1#q!J*3{}<>#DQ*ACb*In2(e$1Q*sfBTUeYn{{`BgES=n5M2ir&?@}w3Ygr5eGqmt zlDZD$VFm2K?~j95K)Jm9V{~Ng-ox%TZ)c-^+3V%_ic@>6LmKyDgosZe@+Gk?gYmN; zhMk4p>J8LuK5u{h%+^*`UH(J z^3eyLaIR;V15Z@&5|0HE4;j4;;{CSu>07sF;e_gC8R!GaP!3Lon!f6Fj(G;L8`Oel zXmHU2_G;{qA={4a$D++m9<>b!yJ$+S9oZPQAUg&hSfS?2%!aKUu@M!TZ?p{f-vKA5 z6O+3q*kJnbn}pwxZ9-E2m#{#LO zvVczlak8=R8Q?hJ%fN$x3@4UK`qB};gMm|kSbvuZ$BDpNyrUb?hwh1W7;qu*a9}U+ z2q5$HNFZ~IO}!dy(WELrO&J`PiEXBJiZ*3f9AYVVRSr!m{~n)&w8vMU&`C%yqF@ZQ z-awT#XIR`PA+dK1is56Qg!~rR4aKkzCm|y^5r`9Y7?I&1^^2#H8j)%~m<_Sofe#QDh&p%c{Gx7Z6r>LO@ zIsXVQ4gj|$pYKaP{`duWE5{$%nyB!8(#IbUK(X9y9_`)n$0CGUr5z*r<{qAYyl?wh zs2j;1|Inu&k?=zc9eDWhBp!Y|@Z%qTya*+D=w{+p?7mu#oUxmUTn>6SmR(w~s$kwR@3E z_QUjL6XeH_V<q^$J0plz)OJ*z&n6*fSZ6=>FneD3l1#y{T?_U*bh7l zh-Q~NP5aR7S?I6z9SuAOcs%f2;EBK}a4N77h_tbqfC!t_41`Rp1&E&&1FitJ0@nc- z0j~xw2Hpg01AZ5HJ`j7|t#;t+z$HN3*;oc9eP0582FQALA&@nw2Wg<1ZkklnO_Lh6D;h`bigt@O zWm+2?+OPw-;=xDqOlcX(v|ZYi zDHmWU+JCPkL=euwhb_A+3G5~(kLAsh@YdiZ;eU24KUhilB664|;Tj-I!k2+83D*Hx z60QfbB-{XGNnjUWl?0kpNuWuMLnf)OdFPk=VrQiQA6)59VvH^J*I~&7x-rAadX{VuUqfAD)zy5h?q? zzR#>4PpW4IV)aF&TpBJFM>P=>J1^IXX){b;7Sj)4x>ihEVEU4n9);<8F%4F}*>tiY zvdedJL-Zo-k`LjNhvkcykzBq99Kxq`AAafhxr_LLSTY9Dev)3tSR-xQDWRH~s7>a3 zank#Yr1v7(o=!jYUW+XBdhJ>0MZ74$ayDmfu|oi4oHhbkub9Goc3>M5wp&OSv_C`@NB*UdDJ-_*aAEN*b2-9E&+}MvZ9O!t_My4egSwe@EYJm z;0?e-fwuw=1Ktjt1pEf@C?L0Id4Wt>E@LRQNRz7HG-X)V!ItGGQ?};Olwo}xG?t`H z>zmq?fh*`$naZ@jr%f5wk6>cy%Cvs0O&PpBOUhX$@5>UCYJ^$hGA%a3G-X(m@Lz?+ zt4+JV+<<$4=B)l8C4S6e$QkB7f|DSUvm(2@3n6vcskry`qbXmaI56NI1g2Jhr81|{ ztnWl%EwJxI5dE~fFnmo!enNL5V2fJvod{DDY3u7AXHVO{U5e1kF_7z-insfalxec7 zdK});tP=cJ3&Cf>#2g$iS8m)O?!E)s17czgQ5?)J#LQ%!wx`!Fe8L*c-qUVx^!u2%ILLC!4#drV7)R>3!|{7V6Q@9jF#g8@nHR?c zj|5Hwa>jQ$umYF^&c#9WVssf^9XB!|qz(GGG|UTD}fu zr4wmVI+3OfIiSh%oM~MTcQoPd9GFOa^pV?oHF<7Q6;@sklIJ@WpQNm20hw+-zFx{J8wX3S8*Qxd02bE1>) zOnFh1xyX=aQ6XYs8m8~VbfK77h*>bx zc%>tksbOMwn2Ie;t~BSuOPU-T<9yI~YdZe73#|tKmx}2u{AY1avs&?=^Fz449{;zB zX*vE=SEb3#Bua5o>HQ7ADfrnBoA2Qi;>~cFym5d$wn98GSs|Jq^x6BHXl`=E8QTQ8 zie=nH!>-zZ4b7}D_QUXP#LF@GacPLp*{Jjk^Ep6v;LZh7i7f=OnQH`wfz7~$z!qQ( z7z4(Et-w{lMZlYYZ9sOD&I8^FYzN*8Tmrlg*a>_X*bUqY>;e7)7ze%yTnc;-xD5Dr z;0mCHuwDT4051fxk?aE=1iTo?rgAm#Sl}999&jzN3V11yO7AjYJ@9hixxg!dG2rKc zp95Y4q>}#tHeDJH7B$Ap9P3r~vai}?R@FbZ&z1mcRbdDfu}k%ZFbW>wu%cQ zjP}EDQ^m0vD%bSuQKcD|uK=myZUj=r-3%-P-U5sOZw1Z+-UeI*yd4+^ZU9~d{2GvB z%dZ1(1l|ecVCEY@`gs@d8$f(Ur;p9s-N1W*_W*wg{4VeX;3go|#C^a&0`CX1!P^Xc z7x*CXJ>U<3RDllzcLKKp(-Eg10W*M)01p8^3Y-S~F>nU(aUjPGPXbQ^{uFoy@aMo1 z;8VcGz-NJ-z+VHu4g4*T`TYWrDv%=v)eodesX&@CtS`d$t3vy-Hf2~;>MV_!7WEiS z8L}B$@lu;9UUQDj=(pig6;6xsBX+nL@d#W#zj_NUv&+Ix!1ZV1C=>fy8LFxu0!zI$ zC|%uQK2h#4*ArSJ;8k*K-Uu2iHlxKSdCG<@R`T$MJS;XG&W%g10(0!o(aV%1Mf>ne z$ItcxMvMxQ3p(HFq8C4WQ(R_TvS8-N>>Jg+tVT1=%_t49<--rnJJT;=MU(#wCyU=G z{K|!bp+cG}^7sUw6nP);IM|f}PY0F(S@Z)y#;+2{U|oewRas7x%5s`Atf#bXCa?b% zcNwxJM!9>-p-J}I-??(WCcqB|+`Ve$-IBfIVBm)c$F4aJqPMfxW@PuS^$l6;OLy^V zM(JPQjXRW5mz}e|;ch)0fdlJac!%8_set|^`r2!}vk~k+Ct(l4*eSa>sdqoR|5P|( zR)K|1`mwD7Ua9^q=4;n`P`a=+mF_b5FpChj50XHB%zfYp-v}$7qYNqW z;~9~v5ySP=5t05QhpI=D%z89%+T&aV9mvq*9I0pJ7tAOetmJ zv=;kcr(Qho-TTgCQi{J%|1&*J~>VtO9`xn9X{Ob)E? zFTsX&#IB6VUp6}#_Q~~~Jgo1;>;d)N`OGF8Jc{<=$C_(<0VC>r(sahyMEi#cS$ylm zJtMm(Gqmo8ayR;e*7o+dR(zUs(CH64vNymrb*T>>Bq^OAA`ST1N{7u7n;`pP8d2v= z!jE;Ij|V!0={Ew%yc`8A0v-UI1mNO^eW^rbSpj)wBpr85TPOEWMf5 zecF^^ZH0+tJJWhhn=&lcB!(zcZdau#L&j@N)l8m}vS`YX`lP}#4>T1P#!S(=9Gd84 zdlzovKI2^!gA3_GK10R0L6uQ6 z^&XYvblST}$*nu_VV3u{Uun2I`2q2fS2Dpz-jQ|^ZcAD)5>9aAzzTJ~(l?mG?{S*6B9kdla{$ z@mBx6yikpMn&m>Z9XLLrzxO!8{@!C6b~|s+!x1Ol{dtf9L=@6w6#~0EVPY>+(Kyqr zXxyN~Ns}~dB>ulGri1bS7~x>wS(!pGT`IIrhqlb2t$`_u-*}m2K1$qu3-5=B>3+v{ zFeUwG*e*aQYz>;c`UC^}l{ zR6SS1?ZI^5MHmNsgp#_Fx{({l+IyGEMlkA5`3fbjT0u=rd@1m51S%Jj@KC6|{j4k| zueM$e@%BR;c}3suedRdmdtFql_QUw{ol(6}6H~EvCW;nF`bgkJ;3y!y&j6MKGl6WW zMgv=c2Lh>Z#{fSA91FYwh`96}4}T5ma$R zpcA^Y|6yHEW+H40;oIO_Ocug6gr8k~LdnUCK;2PvEORbrIu!;i9U z`7nNrlF5?jL&;pe;sP0Im?brFK4>0<+s{H6Sf0}HV>tM{pQ_5!P9TH*0g&bCAHZoq zY&($aTK@^0i}!y48AoV)$$!p_sQjl%+V#E1dDo$*Cj?1jl zIp4Y+H>m$}EGEdddI~^m*x9-cv*|nKgQ>i5ay`#hlwd;V%7$%qSK<^pedPDZk}vGr zk+>=bmud2X7*L!RW(#)R$|rSq$|rSkV@wtu4QbDw_ZIZ%cWpl%d7+C|8+_(0w7NxI zslv6ODfP%9vr?${J0|4efHCXuK^smzz5x5=B1j$s}Z#MV!99} zoB$g_A+CXKa%sfq!eYsN2S27-PSW`~@^B#4gWs+JrLnHEbhw6k?Kq_FsnYl!j0Tep zYC7cXX`{{7mMwbsq9##|RF!rkZnoK{Lgozo@UX3CLA*L!X;kO?zVE_vAzkQ)@nT72 z$z$o_vkfJMaorA_1bh=X8Hnqb`zZfyAQkZr;9}rAz)u6;1u}j93S>#U5ILYq8cnLC z(Uc);Vv6>jcBd{-RJ2KOqulLH!+9La7bZJ)tun z=lm4N=JIDiG(^_VfmOg?0M7(I1!O#*1~QGf4ytmRCY94PsnsM!dqca^`eV?qjLS%C z>{=E|Q6Za*HWXiSJ}+sw#EWA*aJ!ZFTXWo!(e}&@@OJB)qgMTnSF&XONbH|^J;{2k zI^e=PWd`)DI0)%qwVh*yLBcThb6onc$AnW{-t(?n^K-x_P@(yXVvSH!durj zY}`$1Zr_v`()|wEH41r_W~Ct=l_?u0HGDe)CN+GU4wD+RaXvt~V>_fwm%yYrz5tWr z;B18A7_3I`g6%^1ZP)1JyRsjHUGe~pJggmm1CFFZl!pT}buDG053&$8KK#7+**?Jd zF}lHKx7YqkrZYg}IBP5d!^ggFlA~7p-Pk02nWD;n#)CC~41R1G`CN$s599VZAZz~T zfvovg1CIrM0m$~`i@@uF*8* zh(XHKf4-eiw~eqpx1WVDu)L(>7s8LvD&!-}%f&#Jm(@U)m$g8)6qf*NfR_U20xtt{ zV6_g&{J$8fsPdmCmH#xUft8|d)9&mZrqQp&s+nrX2lOk)e(u*`(*r9URUbH*+PYnz zRY%{G*MM$V->_lpn{o~4b6~}!oINF$(2tm=Qo}IV?*-c@I0nmhkHNk!I+MLDrQ=q> z^ghxr&AJ69Wy?HMws$+Wteck#@9!MbVES-F8i1h_cN1HUe1(nt-eWEkJs<2v`MN47?cF27CZ` z9`Luo^MM}#+kqa)Ujk&>bpYv4AIz$b(4^`JO=@JOXxzN2Xp>;0XkKly>&>lj^S?4O zTY#|r=SF6!14`llw?<~&C@G9$50E3XIB+s>DUc(x6+mk83xJD(p8-;5TnOv|t^~5A ztwOG-l17s%X*8*knWAxIrf3skqi8I1incc+Gqk+2{LQcVVdTHb82Rs#kw3J%9;i7} znxBI2s_YD=tro&IgdgL=XHUjw3*nBncRqe81Io#NzTJHn;b30b&q5feankW)-1yWZ zzZm8QAT`b$AT`cBAY0w}K(@MP0om%F4P^XqOil8c`%YCp)1>m5CN(Zov^U^h(IiiK zCF^+}79Ngr?5x7nWA8CSv~Apb&PHQTK{W)Q=iNq5-nYwDe;-;N4q7(TU|}ON*JnU* zHp`snJ&$d-;|{A}(wya$^d$z8MI|lT=WC(n`Zzm-4k(XWO%Ov`3 z+e|TEMwl;N^W_Bdu9|H7AEznx}(Il5dYP7g9?~x#T~o*TreIlyVp5Z zNVB$r#yxmx7N-fh)iaIXvzPm>(qtnHms`_hQsfFTv9XGaiKCBRF;NvU|yUl!AH{8u5p6ebnY!7BHcVOxdpq~pgYd4topK`Ti5_6d1dQRw@> zvdG0Jr9N0uA*VMggZNanOwm!Y4?jw`)d!5IUI!*NI5ag5+}Fo@%*epG*PiCZu_ZCt zlCZnW0uyT&7Q$vf4DUv~9DyGdEuSzJ=S4vQy?8$xcslSLU>UF(I0x7QYy!rBi-4^_ zD)&Xe)xgETD}Zf4rq%ht&A@IThq*n#UjpO6SAo62w}4B5?4B$Ga&W#Jco1*}kX?)m zfYX4V1)dJ<0|tSsfb)PC17pB7z;@szK$eTkfXtV5Kqg=-%t|TIq?8g(8S>Q^4(K!G z!w58G$f+}ynoNsZ>ShL^C$eE&+-3wp_RdOK7QjxS1uFUg?Lx)u6Nvh z&vEx8Ov>Hcj=Ry|Q}TFCh>~|YOv>G0`nLtPixDzvNIs{d)R;rTn?cJ-(!b=P?!vVs z*1PPf$diIzRlE~jaD9s!rTXwY0Y7R2{Xq9}y@LMv5FmR6m@d3{=dy==(U~8#Zh7O5 z1imejH+#{o$x7&3vvbApZG>z35yFqphaRPG{|P(?@Baec1N;cceu@W^+ibH^f&IV{ zK*nz*kYVFelhR`}DLqD$>Rc(>8`_;7n(@j3U6uw*c{W@={Oq(zzHOincFD^Qt*c^wR>P3_%YY{ zB!8h{EojM?{*#AcKLx+^M0zgiZI8EgwXcXSQ8zbGtPekCqn%waN;g6kW%d)6mLh*s8TGag?{ z1ANiJaj|cLRsXp4Yl&0E;W{y|euxxn>=hHisJ!JDRUd;ChW1L@BD7r6$9v+FsYr&k zPm5ia#s!i*_Rc#bm&C;0_h-|$Q4lT@e)*;anp>gWC@0cki`bvMmWahG&T-g4kFC$Y-2 zeG>ldu9S>j!xf(-e{5p)ta*;5Zm9=nxVAjLc7q{{W|1X^hxk8lvkZO)TFE8|F-!btg=jV*4;m#|X#29McTAQM5{$ z#2rVZikH2RLxjc!9krE+BZNixsjKOm#r7V&9a*3h8|?sgPnhoENOYUu@RV zA^j6f$`79DxLQI=)$}*~rr>8kya0#FmhC5>E$JNPCpMvQ^qkz*ljmT#?FarX(aY-W zTojFUGzgUn2UjgXwgUP|+JwR$6}+_k_^FLc3<=+sS`%?I3)?I8v~{$_+Zx;3 zE{L@-gxOoh+cxw#-q_TxK9gtf!*6qKBxSR4jACF{gPKshY?S?{R5pB#b@en#Q%NmK zuY1*Xwyelo;UDb9nkrwy*eES2)wsCsiO1B5BdUE;mMVU#KDux0SmX*7)eNt{!^2Qf z5s<4bPhP2G@4RscT$Rsy|yVYOxf=K!mL zp8?ha`+%rXeU}64fUg51K$g>bAWPv2gjMwcX;OU=n$*{!Slcq?01i#+h8fl(b;Arz z&`|iVct>bchTJ`)Xx#Uq{GY)M+*lIa!HxpkL!9fHiVYd>tzP+_brJTd?ckmf zTu=3$wNkz9>bI$${(B%}aCR`7U5ILY|9D{k0rM4TV=>M?iMu=PR^8nTz(5slEa%|w zY=rR`{L-w;9TSIbipHI&N}1jZlTyh)b!fkGXq*&ODt<5p_BL$8_}MBZ`CQUg*qxFz zOe7CG*W2)WKcT>SmquG+j{c%hAAZzFws07YuC*WG!FSSFbLoJuOS|AU@eQM9Q4h98 zYVTYY>lO+swo({fU7%2ay_Fpbhp+ZVcjymeH^mnCVn2)nEByrgHfdrUg`DwP4rBwm z0_X)^0AztiMd_Okybw4OxDr?nya>p7`_BS71Vu%X8wpkc&&N9&BAMD-16+akwLorn zzZAFPQ*W^KO?LRPPwX!RcH>bAJ2ls5I34`I883XBi6t6Adlz3scVS*pAU?pAfM55n+GDFrM z!bj`q%X463uP)hDcJ&_a{@TiGpQ<;>2HRcsaAjuo&I|4IA0{*8Mgp9D63vww*r^B1 z9H^+;oevY$L3*0C1tuk#ieJ$N(^u@?)`Md_ zetbR;MQ%=O{Q$INeMKJD>)!zX?$TFAe~UtW_))N1Uk%sCqOzf?h~pPqBD%*`S6UU> zx=Ok-GqYLW`Pdu3IMr^y+Y>W=iX{ITcIqkSGdU2Z>*!UchO>ROJlsz+ZgxagEHP@+k3qy^eo104Blgd zMFlP1uD0c|_MQ{1noh62ror3V+3jua>{uG>j<o*-L{^Qw@$SZsp7zFgTW5#2skgNi4TrXA?p)Hv$sdQ`WV5%A+067J#lYS%o}TqFGiRd$c8yy#72S}>}c%j>hA37ZflIk zyj_bsJ$ve7dH^I=1IjFZ0~VK<#l45+UYoYVT}jo0@p;yX^9(-hA)v z)A~?-z33@V2p#*($Y)O}`Nu(bm!$lox#aDcAO5R!dMhi4Fa54|{eB7Gv9WO-(Ytxx z)g=!GM|-AT`n8huyC$90a@u!F4r`zA&?WEwM7gt`F1h*8&DZ=U{EB{mP2-M|r{0hJ z{*JG_Tk@}qr^YHLyszmyOMd$cTJQvrJifL4XKp@n?MR<`P1l&EaiXv1o2Qk0_cpJ7 zpRDl&jnjSCmaT99(`Qcc&3I|WH@^SuDVm<+Q}L_N??H`Wja|O}@i%^J$%~&>@3*W_ z_{N>u{xx6LmW?m`^p&^EbUJ>2#rETJ)9?D(!+&^s@{1o_^uoi(<89JeJ05<9ujjq@ zuy+55<$8Ab^=qGvK9-c}Z7tsUBT_KqW~Exb)>vbFdQJ|8(|w9Ey`?+W9A6qE4-|`) z>gmwz!@=~HSX1w!DG|CsGXk!zGZGgCD$ZXo;c&`)G#B+e!a}Zjru7i!>D^RP%98C- zs^?Ywr|40?AG<)&AD9|;7fB)0H6P&;(`5W-cQ`>Q!<*MdX~tWQi?SMTJ{M&J-oh@* z<9KUvQQpMcaupXrH&M=Qh-PNbK3M*MQ&-<4_L|0qTwXimgJ zxUA_-xF%LV>A+MEyS01rT&&#*mo+^eTOOaXL<%Td-&D_1{HK$D1V?XDrllQqUvx`0 z%W8&j@wB{-2zn(nEh=7cO%j*kSEg{WH%7Ou`Px z{^^sHUn`#c+D3x~M$@nH!nFZhEL(gI62CtG){RMO%Jhq)*Hq89Q&kPB+x4khy%%wWL@#IBrZcgPZTcp z1MM_CL`-)a+SQ)KWt90tg{uNt#M1xOo6Enc{5m4?gMuV3!>_}HYXi9KcpWN!9e>uj zzfR&Z{5o8?UI5o5n7()D`UjO?{=beR!FbFxq*bb?3S4%69WH)dbVB4Rg9S!24UZ76 ztMQ+yaYFRQ>B_IqWV|#V1miLNIudkfKlo**;Spk*^OJFR8!RxIejO!T=YWg4;O-xP z_>A(a;+XaD)qG69ys$|1TxR%nl=$`Kj2p^K9=Bgd3)gyZu~r`*_#C2$7wfE>?zlXO z%gC?E!nM)x>uB+-ZuYbjlDLfgI!3rApr)|Sw7uW-b>-K?

^iLe~B4WY>3*Dn0G<8`8#E_u6vjkxiceoX~E)pI(;GhX)|_mwW?*YP(O zTw}1nXvT|~f--OD!>Qs|$pL>qC5g+(uW7>N1s8Siud2H4P=00HzMX2>cuc=o9a23T z4Zo&|Ux)pwz06>N(To>^k?QHif2Q1b!>9a4nRZ@Z$7*gore8Urr+Ui4V(X|=#IG^C z4*8D30;B0yu5byK|8-jc*+nSSMpU+a4wXh`BR(lB4RxIdinI(_TeP{uSB zzxJIi0OK*^MYWvj;T~H%UisqJpI^$o(_n$oj8~y>-HL(%MyvM2r|wdIO&d4%FG*ZR zyo!X&Y`+S{uQy)(#aENKjCjouF1yc`zcTU*<(FsYH6nK~g^iyD4?O1NGESGJaW zhWNFh_r#ktL4)a6iEv#7E>_)JSN-Vo%CFX|r)^5&GW_xh7dMOBewBz{{%bEy)@()^ z`i1Mu@QZrB?6H6RUHSFmH!7Y5!FbFvUkZAv2cN%m%Di9vI`#gShN)jvDXE_Ob-d0k ze+4QZFIb^|el#KRn0}RmjQ$4vvfHmR@#~G^?z~SXey#q~2a}VyjIuFHxSj`>orXd2E4y_C z6|C`?e$56QBPsj`qxI!qp78}`T5;yvh@ttI@e090wR(2_nk{~9f1{3pHy+ckYS2?X zzsG-ar5#m!rSj`*OFy{HV1d!}s|N3>9?qrP`Bg3aKR@Qz{v<9V4QqvK4gQb7?_b}% z{0`;U?7vN0mBeMFVOY498-CS_U#%lg`E(MO;n$hMbr$}E(JGIZUZ+f-`P7XZAQ+Ds zuR73EJwCA5X?UiXMvqNFx|oldh7sY~1+EO3{xPThTgtC__ih+wtXD5w)HZh6h=^ZT z1y_C6^vPWgS2mkgQ2T6QG@AM zlW=Xre>)8u#dPK$OCC<*GW=>5t|IN=nB0Oc@#}V4rPXR6LlzMnzG2D;H$0j9PLoJ z!Jp5u4y9dF4tFRkG-a$qxkOXi916dw%I7GDa+{_c<52F^ltfG)8$fw}0AzAQO|u`Nv^F;N*aXGZj`MNOBW`*=-5qyP_;RTB>mYC`SAxG^NC${6teub0{xrir=C9MN`TgN{UwNCpwfdnsU5DIYLt^9m;e~ z2{;sdN=iR0y;E?6bIJ_tOh{q9;64#vS`C8r1b#9a6$(e`n@ox{PoJGTy8lWcB!>3iaPt9^;yHoc}vS7ms<|YP^w2~ zgZ11$TE9P>oMVuBe8}aN!xkykWA{*2J{m`lX6XF#X*uL_%VDdP>XFI?)Av)-(TyHj zPNSAXF1MUskux3t`8+-9+F`?Uy_Q2Rx16P*qN$x*@TA^#^<~4!IfxYt54qfOmV<&-S6bqE@yY8#!^sJ0Ipk8IUau+SR+O7v6jMu} z>cTIr^vQr{=(umxa>(TlGm1Fm7~TvkXR~%lF1MV|xa8bd)%=Cw!t=D2LoT-*OdA>D zx$nRkvxbwiP0JydTh22t{`csVm~I5|~X4!PWNR=MQd{^l}_-i9te3$+|_x#e8!k`s+Y z*A6FVxt2pNx17~3IY-@c%^kzZxk}3+ms`#nmz?ii@La`kayDu?m*dJp96( z;pA-5a>(VDbBRk%G~N6A;p9B8<&euQ=TeuP$=l9Fzhmh9+M(r;%Pr?Jmzcum!Ox!k{9Iuu`F1MV^U2^(<_QGw$$tl)y$mN!^-X-UUmrNhF zJcqR$a=GPP;gXa8%@%a{hEC_jS`N9~a;|jAxvV1fyy4{ZX*uL_%lVv3PH(VD!%472`MK_=BY!wt zcwW`l?mr~$mN!E4Je6t{q^>R z8-|l}f|f%rx12Az)__Q2yx#e8zl5^_YtELVoXP%ZrF1MU7yX5?!>P0k_ zLzkZ}Er(ogIoG-5q)+XAWH>pOX*uL_%emeq=k>>aH*EUcqUDgwE$0T8oaSXW+&Nr$ zHfuTLa?AOOOOEf%8Sf7#=V>j6Ty8lxy5zic-=ew0$=RmmkjpLSCYPK?CoLLQZ`kK6 z$mN!EvrA5E@$csk7oLfu;T#XS+;YAON}^u8yd(Ve;pF6KIplK7xy2=?_Lcc(4kxEd z%ORIr4%C(rp3tY>9X31*wH$J}<)FDT(VDgYK6h=hqva^$#a!iCGkjpIxYQhN5Q*$rG zP-f`xc(ojIx#fIA9e_lVFoT!#VE{}By z-b&OrqkSd0B_%xGky}(QCr5q0nZB8W*vjp1JpVDcgWjczJ+EMR`~1A2?04&d@v-co zWEdZz9m>fZ`=fozK~x=Wsc4I}xAa&gCDAfpG^f^AQ&Uw|US1LOslzhmSPH0E5-*wJ z_xo%|HNH@-e^zLgzgjyA$jt%Tjgh+UyYqCojJp6N3ldik=x{~bmUKm!Zdx3G)i#oxJ>0zvkx|uen97-JMGuVfqCk^yxoG1Z`YG z9D>A;N0?$duT-kkbcQ>7;;QVaNK~}<_AF+GG~vWWr&D!+VYC%-a-gm0kPHoVMNnVs|%9=;`9CbEzh_1hOwlaFt<40VOS$~5C2Krb^NlVkSA!`7^DqrcW z@^E!H5LBEz^r!ih@+&Dc4sMndI-KPdzS>g1ziPIl0qK)-G!ZXylCz{x9pyCn0#(6T zW#NkIy$ow>Twx{XLmA?G+KLfz5s_*z!$3ze5vhW*t6pFZGemlSo(Ruz;MolR1{6U-ss z>`hyw)=AQ zll-1c&u@ygwid)1n_G(;i;J5IZTI=DbeV@=0e;0f33^^@OF>RyOKx6aL36I*z9_%7 zDJR$dmvCQHlou<=Yej34KQq>9(3=~ZbBZaQPl8@Ng!|%|jml|~`oO)a^FMa{W}`xYfw|4+DYi52Fw z%$QlwRGd3=CN!c-_x#q_5bh;G9lM14);t8SFqU7K-#Vk&NT1djxrGHYiVE`(xmH7d zYq28)218D(BPG@{)27?$Yx5ZN!s5c*Sd;!|&|%H{22*){t)3W z7___<%=;e901DL9V;_yV43TV5c)z5db;)-HNxhLertM zI=!>$yi>g1+=BePoZP~~nR#B*>Up`cgC(d+8uylaoSAm z3qMV{2*9|TceOvl++-PYXQ+0)q?_nuI9qPMmy-nOLe z0^abzaSp~F-PXM$&d5$_Ue>agA+Va;$r0}ET-4pT#9IMbJ>CkOGL0D8V>pED{AYiqo^5?+7MF~u@BW!bSP4qR~+#NRi}x(Z%~{aa(cIqK5`z&n7Ye$t2*tm* zxjQ~wa9l!)r{_9SdKNc!$67uXYwwbe#kQ=iLx;6_clA6{KD%du4*G(nGp6VI7X(%8 z;d6bNciKFwr@Pr`&6+LLzP;2q3!G|8eM$ZK)>O7^qq6US2Ayd^t)SHV>l-4`xTK?D?f**XL=Y3Z?)Wkp>uP*Wb7?{KAR3u&i<_4A{Mi(@%LTh`Uq)|c0o zHB<*`>K&0IwWVV*LHm`aE&MfTKI+h|P(c`_$$^?ODClS~5^bmnM9Tc(0QTK0C+W7x zfbB#(n4}#XpdEz$^;OY|y4q?9u5Fv4Z4m`!NoVNEDB+pfwmMiHz*!wd9Ic5`-Rm6k zfi@X!Xtm!FF~%kb>k}fzYGQe9wLe(nBu|zmv&_^7Yip#SGApueA?z72#WkZHq;c9_ zM}0g(`d5{`kp`zYP;1>Q)H53bb@S1Phl6$EPqZ9e3~REs_gKol9+8gLRzySoNPV=d z%3o8dQk^nVwHtOXk-<^PAoLNW7|_9pBnS2Lk!J^MA4Y1+x8QOUgc60o7Vr8?XCajpDNcXTL5ZOi~?1Jnt zqVI*c*Otzbs_>Wurd~o4sA;H{YC~d*rHJU~*4C9fWRE6S*OoVg0+L8{ovO*A04w}u zN?XxpgtjRUMo@*zsw4?$F;ZKU)s~?oM{qUBsBF^HG#yIMpP-J?)P@??KkA{s!7YYL zwZWQTeW@SHvKj-nV0~3xz+aA>&4!aF;UvW>D~lo_%R&+dk~}0;N6Nx}sH_k^1vM)B zaS;{{mRCoD=od@Jp$5HCSTl`jonj?f2j)uS<48;r2Q}>yhY>?4sM41#sS*gk9SCYR zl1GpnsV_&sLb%;Vc@4$x5>;O3uc()VB+E#$RD>&_4up$|!vI6$ySRci;kw#NRP2b< zIXZ#fcRAtUREh=Vrb$rdGmR37ga*OIQ5TpKL_#q0$TLb}6`t!(@N`YpDP%_rt%yq& zf>&E14anCa3O8a0kPjGep{xeVpz5Tpu5=uvI1Z#i4}=19ly;`}{gsk{IuxA~tgCN8 zMpDmGu*czJ^PzMYRitg7>b8&6@LOiEXCHxL;V;F85j0yg`v|mxXj-94+cs0Qrz0Gp z=(d#C&Ske0qp~t8Q&q~z53kA30vIf_j?=s&6TE@aTKHTWZU|TVYy6b~X~kJW8L>3S zU1^{S>b15mV%h$Wa_mqM{iRUa)w82W@cP=a+K}T@y5mZ^N4j^!z7kf7=GI76p-%@m z?(DusDOv)2o<;>E!?Ctw8TBKka{}|UigrBAbX?9seP?s$Gz`)mu#;f4k!{7%ts#yW1Q>g&T%G)Z-wzlov%N6;>n zM|C1f8$+R44nqVjL6pOf`dU?PaSm2_ob9-gJoaNu!Z^s#9v9#$N8=nvm4SLD0lO43 z4yu+=c>`{<8TPtye>_MIzM7c4i&oIL3g!3^Nhs<#kb%53N|G(O|$P zI_~CGhnUb#0Xo#Nv4d702%%4qD6w|r4s%>q1Of;!mHEq%jg~=rM$)h$0M&u&QnbHz zbvWE%D`nx1LN_*u^y+Xu&+sWBXgd-@%AsKDQQ<@mRT#ZNQ<88I3DnChpG5HY5(qTZ z(Qu$nihT`QMfy)ZXnz-<-SJimjEw>LQ!MgpZNPpKSfTl)b27C%$iE%E_7{!lFi0}uF|!~wbc@MmM4-AP-HtloN#8i=~3x7bF4$A%p}W- zI)9}|Wkx;>2U(U(xP@wKDvPC6{}zZiMP40Z;!#%APDQpdv`ul@N}93I(aPhpLJbtZ zSn_F`>aukr!X}E=Biz>YJsJV`$4B8QLOND_VL?OMe-M6j3(Cs`k=Fs_8-|HJ!mB ztw)&FAq;>T&=g9#(srb2YpZU@HqErP^|`1G@{TfX8~o95a9$u3ahTJStkHI2RLrtN z<^xRI+K6;0NY60o3{Vuo#ps*LfcBZDy-p8%;1-eY4qc5lU4?5o_N%R(9aQ5(Iyi8E z1F2LpM&{fB-Hb8aaC*SD7;9PtgXQ=PkK)KOEh<9(N@?7p^|iWN=ENe~bQrF$Q|@FS ziu%sZ6$3ENbTtp{LTz2J5<_jfY#e0T+s(U-{aM*4VZ7-=&t^#Ju#42kyASQa) z(o#7~i%l^Ho35ZM=3%--H}jIAcft)Cks#*GgOSh`sYnFF_?jSe zC41epLyG{rn!sFS^Bk0VHm2zJM9{3*PN4kZLs z9(FPbMfP9?CWvHA&bAnXNeug|gQEDP`DUP?;=zJN7O2=z1vF_T0)&P`*f^h1+fXls zoQ~0lhvSAC>B%6U{iT@qmo|;I=*u%?Xlx;-6q8AkqOZaRU(4=pV+)N259-=qifMeP zf858?!R$bSMe>w>lLxZ{$_B-z5}vS= zLpml0G##r))RwHetl&3d2Qxwt#%M4UDupEq90oe zV{5QnhT$aUPNZFu$%+srE6S~7wP=KNFwwdvC0+TqAzL+X=rv*Xi!r4Z2xBr9T6?}Y zy2Ej#ClfG&EJs_2M6PW>pIG!E9ocQ6%s3#VHS7YR^Ugv~d%GpnOBv-sWS%%+i0Qy? z3&lYxDmF)#GAN?gCn6nrI<^~3 zajXY_@YQg6q84j6p2>b2PC1aGP`f=9rw#1ksd>G!+OV4Sqa(Xf6-N<72F~gNm_bF) zmj#J#>?T#*$Sf3wpmWgorGtx6atDeX2V;g%yLy0u$d zaVwb?nU8TD6sH;h*a5T~UvY;xxLw)lVYj>qX$@hHiY43F=+H~M;T1>9-p+p8iQV?v zz8O+%uk6NGoS@Fi^np$}X+Y?e-2iJjnE!`Q)-)XuyWtgE)qVxa2PP}$5-98t-A;>h z<&&D`btdE4EvCzfrb|rtDR1p0Kh(5k>L5(?RaN3Tnd_#M!%TP5d#S0XBB_m_BT-v} zQ4O-zDc^^iu94qpRO6ja4NAQa#=9Y_bL9OGN1T-Y0=~BhU$)4kfbXXVQ?4#rGgdrUw4KaHlvmo^P#33Dq0)8y6*m~on zA>C2^R@Pzc>U>D~r=DhZdiA}=&u$}}A3Ic4q%X~K0j7MUWKEACprLY3}JC1l#JXSiH*mKuHX z0j-!_-HT1vMFrTA!>+no4q!ix{=3|8c@dr0^lUF|;%ZNRG>T~?~_{U3V?3mw|@ z>~6T?Bu9B0zYo)i!zPD-`jDnp#Tr{;-PmWgq_abW9>X3v=R^1t0pFxIjf>RI4ffB_ zqNZo_QkU)?98ZGR3=BJmaHV>O;^JtySk{akF>rApTx4TMT{wc(>Uw#lbuV`5W2?YX zuq{UaF&f3j8=N(1ZfuW5d7vWN)!T%bjomvq7!rPq5Xj*oIalQG?rvNG<({6MlPtNb zQw|64v*p9tGC?`_k63Z?pA(i6uZfTsE^C;}5d+85p3Vr z?sTbaZ^W0xn$hy7XMd52juee>sg(OK)F4BWr%-d1;aGzXElVWRR7!FblO7VU+u=}R z&pjME{tPW$$__gY;?lFjS{_f=Nl=+`d72pRw*6qv+^?zijf<4eJtE=01bI$ldv8qY z5!XeL^ofO0bd1uo1KMdr#}XrPnA%>1iWQ_7V}Dia+{0P^gVPG0kA82)OBwlZ(9J2-lxblW6mpS>87}RP=45d`q zg_NA+oGqwWS*bx@N@-?EW1!foh|h6&6knpfVji5LqgLA4*{-vnOi{|hE?lW9&uBMg z?QOA+c(9|jGt|~`zLY^0V>HzfEK*B#eo}>jB@7MU9P!gG&Qjc2^*H;AfEp985?H2; zT`i>4Q9m@%t*xe`QAsV-bx^OTTSFF6?uUpYICBT zXGic(J;almI;H77BSY^|*_j_D+7*vDYF9^t%;C9Rl%U5-u@SRMJ`Ko1m5a_ox@>7d z5YY6L`a=kKG*E@vl@Nx87&WG6v&9e{$rmqPO6Q|{&Z_ch+F*sGPU6X_2v^y&XCkEJ zaWw{>B$igtM@!G<9GJ{Ass&L_TX6YIRyC;5*CwZ(F3(c!*4dWmK-M&bqm^~F4Pgm# z7Xl{Xq7Hi;ez+IbC32!M9)_K?(rERhD6t4|VF*D*7Dy3b;-0GAMPjk@b>dQkvr@#m zyE{5jpxC@~*3C|AU2k(mk8XAN)xD1 zk~NJkrTVa@HA^jvwxOCy_M}qqoLWpHF_)3+oHj<=Qud!WY%t`vLq$6F|RWu=0pD6IDHwXgUXvE&F13LatqU*r*0OaL}*4T~$=p z7A_J~!`Ry@^@b31$Lp>4P(XN>IR31xlxgR--So~6pa1I5e)iOXPd$277@tcQ`X#B2 zbw9l33&&T`=a(P4{kV^AxaP9k@#SZszx3F=SN_?vby?tp z&|`OAlJ{H7`l--Q+xgVApDy~-AAXoKZB)TEpFup*J(Tm%(2LKT{LPk{>#y@Z{-aZVan60He~%0O z+V4Ja|B(fcXMg8+WgYk5c>C*^w@9U&N2VU}!(ZLAW9OF^J%8g#-zvM>vK9z^|j5CcRSb@^u%$XWBTHK z7u4K|p#ys6%RX_5A`qvpJ6hWo?O{jx5k9r$tj<}$^2WO6&_bB7dkSl*X;(Hk6;S(~B zvB)PPC{g$@9NC9bf+R%~+1dR`1PYm}!ZM{k$2%p~)a5+`(AMSUdx3YV_go=>PJ(*r zQ7^@?J;Uprk_SfE6%~7@i33pbg)#$&du&R9q7-S0wa?zouthoE73U;-S6pCw_YTxh zI(}(ZDEl>ZY^j#eJD9Nb&E++PPrf|+=G^K-zH-u6JC6f>?@m)0=S2Sc?mG?Z-&*}v zRbN*W3--m4RL1#pUFyPCrxoH+t=sv1@oE z-<5%#;l+UgmhoPE^F9oQ^;d6%tGe^Dl!Qcx$FJQI53dKe%aKTOJDQ3xNqj!~=+%$b zH>9tdHCjBkkLc z=~plvAv9*FGWii-GO5%TFUJ(_dgZTzFZW|AyZb{OpH^UaRmzJ3bR&H~_s^ zzOy=P!0!~RG8^DLNsV!DMS1ezn=}f@2HW z^usW2gc-L~$@T6ePloplHwJJBhNMH^Bp|AD-^sw^f%(83AOn#H>;$40)VCUVDlioR zJOelZi1WIAQ-C&JZi-6MP`ybiL%8zc%*#!V8I`s;mg+;Yi2gGL>^9_u((((FAEh-{?p%$ z_|b3Vi##pJ55C8MuWtn+N1sCUDg|%2*~$f4<>Q zUNwYjpZk|zf?z!6@q3(22iFGF86LXlGXh&Q@ImVb`&Y}W^Uw4v4b)T*a~O=)^_Q)F zPnq7B)J+9yJf>gtL47*c_A5>Ny8O}a))*|>XqWL3mKOz#&sc4f=1}Yl57>q)Hz#X1 z3Chd?l-dE5sEg8#H?#A#x+#LaKtMW&s} zn&nNi?2p?!y(87EMxdGyqG5E%X z=>}%s5H~=y+xem0(;b53x?$nJbZ3H-l>dLcGr@`c{yP))-b7#WW(R%W{!E@-H4YD)$zrWv-XBxO7ImFfut}Pyeb|tZqAbHCG z-;aiiWrJ@J*!LX)!>{cRZ_B`$tNg>R=yM%nGGa3L@;yZ{CG6#Ox<pHM&X_xWi@Wx(>rSOCB&Lvk_b{(*`$~+u;N%NCgF#Jy} z4Kn6&#MEBDb1%hl9gxM#SaYL;Jzi3yq+|aNVdw=mXb{ek}BX>o+ML${DzRGfU_L*KckT`oQ&@SA{-s z{pLiB|FTjBu0Q=1@j4%Ndp#?!E*1J8SmYRXzJG6)h6b)VB-T3iZOO}CzWJY9soKA^ zvgfOo`?kzuth>pCZ91wP*Dqc`>%vKif5-a8$D5AwAvC*t%n2AM98AD)jK90*<4s2~ zbvTp3iHvA&p3G(J_Abl(yrP1nnT#~d84op+(E&g9WF})%F1`zx6iwd{Ga28`b33HF z5`Ld%KJNd&d0V6r{rz(v`{zFP&wb#UR()Tiy06mRZ~7m) zFVe2L`#Ssa4ix$3pFdcV)t0HA!^65W)?1Ps??ZKsojKkj$JYI|D ze70@RZXMk1Aran2_CI!uVDeEDmYPre*1vtY((m7Phu{8d_=dZNZ;%`Jl8@#Ld9@zv zcjEfI|IV46eZLXz6S?~>aTe(R%H3}R&j_iz-v*u$xW$aTTK@K z8*eqq$LXHZeLLO5q}->YJ@@?IJ=(*#??2bG|6I@hb3Om3&h<>+*F!zh^8P>e-UYsj z>T3U=kPzZI(Igra6>Csb6h&?#ikF1sKvEMDb3tvbF+d&? z$!FDhxCQ@zQs?15d#}!;SLe~I^Z4JR^H8@vAUcm;OD1Rf-#_lPWYTNNL?2b;^OC3- z`k7rxNv=VU(&FOsyy9GYPVWfUlN0UwN-O7yT#x>)N3!d|*X;O~urtVY?&mt2Ls+58 zf-*ii9xBVtDX|~v)-I?NFG_ua-mtg~I^8FRgIorkU8P)q%OhA%bHwQ| zH*C=L)n}pk$cl|H)paa0pN#gMdo7vhE7EEP`c!GJC6iuDCgnLLy_QUREtxPH^jb3M zwPez3$)wkkNv|c7NhKBKe1yE$l1YBfq=~(jO#FpVuO$<+kkZG`9j9R0%xdrZ=VnEr zGffGOJyB9u51SXfw`Yl}f|2Y!I)&}+%0*OE!EC6iuDCZ%Ns z#gi(Fa=wUd`d&*Wy_QVU`51lW)cVHCnRQdEW>#0usjHpcSY6-Xbbnx@*OG}$u9)u! zSC*8QI=z-mrd5|;J*S#&s3{riXjBt0?CkVfGN~*o$SbTYm{{F7p55m8RkP6tRt_IN ze1vlh1@%`1GmP5s0pamEg~cfPLiv@Ga|$a$Wu_bl(Znt)F3mGPviLFnlJbzF(<)z; zPi}rrsp+O#_Equ$-rStR!tpt|7oe3dC@y6?izCZ9zqg6NjhgxbNkRWFz8c(X$t09B zsiLHEVren|bJ-0PD)cMJ>9u6CZoyZ#k9M41OC~iv`rvYpY@?WO99K@Qn?0Q^qCJZ@ z`e0D6B@=tA@MG(W6HWKU2)IWb$KY=dZq0(YGzZIZoei=NdMxzItloRn_*F|u@7^BM=w z@~h%5+&x}aar$v*r>BpPjqh39k0c*&xOwR+ zzG=jlIK^>hOjT@M$5%rHKZd72ty@c2M&es7-!VYE_)004 zp%KTK?|uq9&_#SR;d>LFqOaTdc>K8W-HH3x;K}@k@#xi%6LB|>Ou;uHjKKkQ*H9TK;`N(eE=iP(*UGOYg(S3Xu;r%OkPX4jw zBO7t!yOe~^h3D>{bRXX-c>fWegC4PbUFB~89*4m*bfx9%s(!cO{S|o5deriz0rBcr z{o@sQ#yw{F4hG`2KPC6H%VRm?$CpQZvsO9IqmNszuJZS7yx(?t_7~qZPdLsqtGkcy zc-qTucn*8Y@*M)id)`LI$?w5)*gDJC)$`s+#_xpZ$QLZ%;Xu6ju7mG=c)q&1`}oF? zzkk4U@)pb2RsPD!-{bHc^t$C^WgNFYUM1bf;JNV)%a;kn%in|W719{?yxDzx*HLfZ zeamr<+F|+9yNGWId_RL{(w{6}SN-iFyqCap?w{NF;^nV~_?qEq+u6<+ul;F?9?|MJ z-{96ou(;2=5BIy_x$`gL(q`!R<+q4(-Uv_G-wm5Nn;b8HYv|bP;ko)f%cpTIUjCLO zJIDezRO)6!^ppQ&#U}>>Bt1zeb=6*$6JL5I<);GY>Z-lm zMnd;YNpMcl1k2S`d^N;(4LomM(S3aH6UU}2Esu$ifAPkvy|6qzGr@U$w&m^Wc?aY1 zXLy2*manV)T}=MI49{a%S-!5G7ZKaJd#>f_E`OV0nJ_QGIrJLK+g1KFROP`_eXZpq z8*!i4!Q*OpuAbk0e7`3A!|+^xz2(#Yc;z>Q_-=t`W!Um{HGd3(FR&oN8QN_55HI7# zw+N2{cwWEB@@X9qZ~S`=?<;RkaL#Y(KE6|l?b z=P*uQ^vwk4j=L=1v0dcvOQiea-3iX|-?4le*W$%@IqBBI^WuG$udDWQG!5>N`xBg( zeq{N&l6QBJ&=n6OH$7(gPVORq$waVwRf6+RErgXf-Es6oyXfa*UO*4_Ys*&vU%dLz ze7^5>%L8eyc=4${f9t;zoGBW(xVmc3ZTKyL=WD;UeEJ_RzEs*(3p{teVfnh6KcpXe z1D?PC-tu)-zv3(SLxS^_?Ut{r_IDxP|9~g&Ez3uV;b?@OKd&|}8rPv!qmC%(?lF%-TvJ>XOOc)JIDDwn_XfRFCs9R270m){`x zPU-=l`fGj<__TihY7h8Mhi_pI_)davRS)>G;CrKoeE;qN-$3F!dguPjPvhd5J>WYJ zzDYgcQ;Lf^@uhcaf10NjcjD{Z{-@Y~Sy`v&aWu1{u)MHf{MpAf zHPucVHnVohaXoS_Dw~{JS{}n&T$nd0rzlj0b11K%JZDlKN07=3CRK#8l#6${&u7}4 z@agUF&!}#!omDlX`ZL?&fAW8)E&k}|@3l?WYn!guHr@Xk+jM@{Js|e!oYQ!N>Kajdap!2Y=4c>G-ls$~eA|YfA1FT-b$OTKJ{nNg>%J$tjdy ze!-*=??U=z$UnjNFPOw&Iw@4nSt#q($M-5PttcxG<@tdUeIEjaN)@OuQW8V z(iJXDjPmpolV|<~g+;zGxdhkL8aqLYCl!#h8+ULq@sxpepcR{M1Qoz#p0QgE1SPEB27U3t|EMv~Nw z)7kuJuW7Xnb7oduUD;4NaXe>5`en44kt7cTkJ^!6$(Rswj&j}6(|PU_DkkOXhZ&d@ zrcb-ya}RsYtgRP zqFt{=yIzZSy%z1v`M^qhRB%ELM>zA0EweX`v@*$9rJlqA#e#O{1jjgs3PVMqN#$lm zBkn%dIj6k5v|xM%rxp)I5|Kxu^(YTrY?oAWOR{dcc{$}dm1Q#FQas75@8sFnO#me; z>z~rlgit9qv_l+iv=Jsp`#XbO*M8O&^MtvfvNFWw%7RH{tnzH!vVX0(Q{04$i%jMv zn92Dd>)dP6ZqCfwsa1`&b+dad+D)vi$idoJAtv3`Ok|DiAXjH&%=i_TnHDQ|&jOEe zuRv8*nKMy+Lv2(3!RTTGzWKLF#X3E zc$Z>9JcmT{$hN)bkrwSyKz}~T4Ur!0F`+PLVx??mRF)T47LWfTUDJPxjA%xVz*|1O z3{lsX-cA`fG@9$;ywXa}B~L7vWELj!@3m-`@esw3Hjo9xO-iS-ec7%dudDpNUNKd#ssl71Ln- zE=3oB5djTba_bXz!p7Aq(aq5QF7A#~en}a6gUZ~(G6n>V6mm}RoMq8LU0d2ydGzr- zG~$?w@q7|J9|cjPHfbwNlIKIUP9za2Rps8-cgK8zMoR_Kc-d>wuGgZSH=mk!KNS+@ ztkN&Hxa1Nu8_K?!H>nz?GPLNhm4+_Fl!l$M#N$n=h9|c$2f;8eXEI`L&UlQKoIrCE zmp88(F0XC3vz_9yc~h&6Oj<~GOXVgf9?WD?mAm0BZhYUxVan|uu) z&(M+Uc$dqYdD~;FC@Cz?$EM8KX?(}U~=(FX; zh(K=1VS29uHw97aj# z1!!IYV|uv+Gb1jlzK@MAx6+)8yb|_1NLDlhReA9xd7*N5aFLo=kqnCFv63lo%qC)v zMw7BQj*I570x2strm3MW!|@#%ib`^Fu@Ya5%2|uI+)%+})|6gX8{Cmu;%#MFMM()S zc*|h(+QbR**eHpRKOahZRrXHolG8qo5p%_OQkRUSAtUB`F%IdHkuoeQDJMyr^vPW^ z7KU=l@*Qv7IHgNI8FZdliZyV*w1-CXx`mj}64;2>dW=&$FpMgxwARG^+BhxRzf3D( zjK8_n=GVqB_X&nYGcz`o74S}UlDFdprPU@HO4$t1lL9D4{MCr9?7d4B0Hj8%p0(}-` z+gM{QRW&k?q?nggn5pvKN*SwC^>CFJOqh^YD^nA7^;aV>rer+ry5?6`O{=cYt(!Fq z-GL(24o71xt+1F+YsoCt!%C)VM!O|^gxHjfCivLxIt8x|4`CYQ%P9`!@ab3 zN>6oeQXiw$R7ysR8@dETF@V3Rk;-xX%(dyhTy3j=N5zt ztEQCK>20dmbZ%H-+=Rxv2^Ce%nNT~kx}?5ts>#q{ip}L4K(MQMZQBS#Zr$w0+8L#F zO^vm)t4-q!$dKhRSgZaB3U}SgJxEO1-3H1U1bgL8e%iW ze1;n;w{BXsTW0DJs+&)2KTy3} zx|UbXu(@e4F+ASxJh^ISlP!k#aim&viwhhmt>}d&O)e;9zMMSDv4vYmJh?M#t7kVB%${CXSUdYl(~i|e5Ch8C)@;V- z7i}KY>X=j~o2T`1v|8ilX~ort<%LtdOuKP^*3JGtEI5DOKkeiq6QGwYo(W9 z2vI|bhSA&HI`cY|(c;UNo*CX$t~L&(uFYOV;qC@A1toO{dX&(liXu~4W&BpxDXDAl z1|VfdkEYBpe5iKLce%bJVSes&#gPSS;xeqIf@U3-KXe%Jfq z8>tyHahc>aCTZ3yF{Uz=l4f(&Q2XR&s$Ao}ndI9Cd}UQ*G$Vp5V;VD@>Z6LlbOQC! zsiuEc*3v;uqfAtKlZ#Pqsq!_bbTOtVJN^`0=1;*Yw+sB|slL(-=bB@#BafP`%Bts7 z)mJrEd-IhZ@=$MPGf#7dJ40NOJ0-W?&XO8BB_R0E-nF>a^-QNp^LHA3kbWKR5JY;qwpOH1fAteK79h_P%o3FJ}Dtoo9xh)^GHZ zYbiikOi52zbiv)#)jxRujh%O0UO4pa-+zZ?!GH)p3tG_UMW5y$I<<4Hc^!smOMIur0KR5K4XMX+Y z?!9-;*t+zTALrgq=QZwq|8(-vE&a-CUVV4VQ_rs%xrkG*Ja3VXLrp#V(mC~YGwQ2m zWlg6OHDnE$HH@CqWe(cuBrZKMBL#vwIMl`jK6%z)x=N|AFd+mREHQCvO z=aj03YFm3v4VX8-bVgIv>=`vpwU?@|&#bGO)^MpruhT{k8$N8*rJNDdFF9349ct)F zBkG*=?8XDqY#K4IeLx~=Z-1`E&QJPSuAx}^4zqJz{ej4oZ#{Hy`S7g4)l=qVoeR{? z$S^o~j`g0!f4;G!57^U1 z6_sCyxOoZqN#f>}!)JfS5hF)*uE&uhqMqEVN7|WfU!!jK6{GM6=q9xgkNF)6OQnE=VwoF#2KAC;u)R$;g|#0DMt8lwHNA`PTgXJ zKeHTwXN)dFuT(py=vVebBYVgTrS}ZbawwMs!Ya!~smP!&vQheSfI- z8|p}=;{!H&M@R2gq947V;)sz4Zju@qJ+`>d=npP_iX;6ldjRUu&wYE>7!}n&-SK9W z*FQgdilaL}7I(Ig!n)fnO3-tY_IrY_zcIPe;b46wrXW#VVhM$M? zKYr%=W9I$*`K;aNKR4}^bAP>d>baM{Q}WEl3vNCi8+7Bn`(wg*x8sEIv-drBADQjl z;3QSSLAEk*k_hW3iN?Vw0#Z}Yl@meAe>^KnUV8V2FgH;mt?Up<+CD&vE9BNh8@ z=@SX~N`oV_H*T+}2cRT2o<9 zT2rHGO@*|kQR}ADg4$B2({`rQO!O;lb!hLoG$?2OMB}~3c<*t&_u#$9dY>pVZFSM! zv`5xAulw5FPpWf$@L^1=d#>&Np0qm@lKX9U&%#s4t#+nsBR1cn+ucLBjgDz|3Zpud zmG37zw>!6=tHCMeY;M(*Zui=6gFBe!w}-Yhhyb&%GVSjnKOwjMiAU|v@Kl)w2)Ekc zJU1DE@~Sqd)Ms+*nnBx9{%3+}gR?-j!8%ZFa1N+8SP!ZVHh^_t6Zm!TDsUAz7sM*M zGY?c*Tn#FnpHtDcO^UK@QdGcMkFRPaXg+x%D&XvLLj;}OE)~@#&DeF}PCPWkEnL@l z(8iFGcG~*6M5H1m5?a+VemJZfvq#GhDs6RsR!h;U=J~5q(r!MPktkBJ>f^z8w)+ln zeH(-Dq&HsB`ZF7_d0uKlQ)+u$ZKp%y*r#bAL`hUm0#QuSw0eSxrMm#dUaY6a#ClZB z@93Dj@oNqBG0z>H!J$M&ISgq2Fs12OlipaT!=pvT-P*Tv_zT_eloX}c{Fj6l{?A|4 zZ|+zM{Nuq3-NJMWz3n*IJ^Jt{Iy#l_(F*X2%4OP(iYI(_iQrZ)@D5Z}FFOEsj zEkmbqfDL|B^M`%9dcGdzPBWaF6Ur=Yp<1gSbz<7WNA2$px#z1C&f?JClEp>)F046J zg-Cns4aD7Y27G#Dk$We2rcK3J_NZKpUv!m!?QFIT=yiNRGe$<1$ zz;CZv92)Is1c=eNG|wCEG#<*&=Br0LrpHk*Q9UlS%AN3U!};^O68iS(+qZ8bw=Qph z?mE4MejTnpi5-4+`jOPPpX{YN%Xzp=b_z0J{U*8tP?3{Q^q!Yo@ae>Q&>WQO&w(0<>Xe6aH7mcOd_*?`cpnjGpX_;xH=vB?T`1k@i5r4MLqH`M7+$}Ob=D#pavLfgYUZu>Nw-J z8A|1q>}-KL#89t64K~zPsDll)&3D`GQ#*WWCzK4^COf;Jjxf}2D3yP*vj?ibq4q+_ zU~RIq59%;ONjy2hP?=DJ3^f2sHJ0oQggVwx5?8-qsKHRj7-|UAKtr7hb+n;|L!D?S zh)%M&KI2q~yZm&;%0w-MjFpKLMlywPwJ)k9l+;eW(rz2e<;4?9Tl7GsMuuLkJRyLN5)1vLPx$jE~@%FiC!%@nm2z! zJK{RhU26@3E^C_7P&JFKSF>m2*VP*@PsWY%np|Cvyqg>?^M-9)CPKAA$-G6}TJ`FR z9AstQMWBSl#h}c}ejU`>>^5*N_)Rbj-T^KGmw*x*zXkpP{5JRqco!&n;2u!2@4cYb zS>FL)0KW(R7q|@E4&Dd81>O&~fy==lp{&$&w}g04WP#K=RwV7 z8^PazzW}#^zXW%KuYelKUj;S({R-4b@)|e}d>xz!{sz1d+zOU~zXQJlz5!N(zXxl< zKY&+)+rcJq2Y3zmC-5F{C#ZJvKKLT|Pw+!AA{Nq zk-*yIB(M*t^*|Ch3hWD>0rmsW2UEZtFaTZvrh!FZ2KW{5P_Py}47?UR0$c_T0JZjc znliF$A5nJgBP!r5!B?|k(C7t31)T5WrqT>L54cpo`6-lU=Afgsl_K6)+Nv zX40UMTSNt%t@uh_2s&!tq5@7UlxF&%^H-M&IRApuoF8=l<5B@r?wa$1hFes?JgesS zpeaRB0p~RRH*OjxcrF!iilHQ@1ReDiQ32;V{@XUBvCX!j&A!_f-_6(G zAh}0UKGRw`IqhbBz2g7xYvns={ZWgcEK9R|Olr!6-k7bfAP#T&RUO5BiO-$bR0JKp zv^w__tOQv}XEgR{i&`BMS&vsk8ubIau32j+t!qxA{n&NQe;K!q>l*cq zWJl{7ef=TX>A0@>opI}GUGs+V?YOSd_a2g+%lNN3CD~cPf4f>(24zjj#HNrPSL_Hg4+2rx*$$pp#^)aiKfOb_Zd`#Ay2zMv|>?O-ISr z+hY33W!o6xDOTPZISSz^T9_Q$tuS>i*;_n_odQZ?Iu#6qr-71~hJliphJ%urMu3u- zMuL))@o;XQ32;UeAVWI&PJCCIDdz-X=r<< zO+&R~-G;c7t1X?02A>gRV|F>bcJNX^x71*t8sbx@idv&yf~IGBOOEtHk)qTV)Tv;4 zOMa3Dq;&&IYWk28KHk(K?Whz;Ek#Qr6-$g>a7pw0C24aHi-eYR)Yi3m%BBlzOu7}B z{u`*)Nod-MiP6@0DXpVQYE-k)X)O-zL$|i~!Ws#^k&09=yfkZjoA)MMSGI;ybFSQk z=f1SnNr9G-GUGHJqW{;Q!T&zjAJul6%`;gR5mVvxl^-(mYEMNnv<1$r_?@^cuv?MB3_#y+dDWDcZF-w7aAx zF(#44p*o@JMP=!C`;9yhUZXxo{QP-^tV6!df5mTGe2K118d=J~x} zN1Ix*RTawgB1mohKCQ%kG%9_;{3V59K2$u&CDLxx_v1(zRr~lv)zT7I)eb`uoM|_H z3x?Jc@mn0)PId0MaB;=X(wb~NWP3(4Db2%U6HjS9(NBDUCNk&OZ?#lxi-fkly4}m5 zef2pwj@ytpZqm3n&l@Zar-&hFI1O>C6EAgXm24!DqMa8?xjTNamoDu@xrp#Q#$!k) zkL}juRNq6dw`jFZdQVGBq17Zb=2=>L`uV8VP2W^Qk@u%zbD7lIy-HKsPBn$GAEth0NNbZc z9?2iK+r{A&f7U zI?ku08~M2jQ4VE8)I%*bAtFAt+^2pI6)_?H0%h~}cc^a|H)*|XET=Kv|G>mj0(FP+ zt$_Nrp)P~6eDk4fY1{#IukpQ0Zic$g=X(~)rn}Mi-QxSc2lagu;sdA$4CVCo(ii|` z^YRra%Qpq;VZ(Q&&vz5lBgQQP^_ZcS_`W}Zva$RQ%0BrYp;jBdoj%_MNJO?irux*i zQ1&UGfsz&=(|HN%ITQBRP_{JQhLT*E>HOXI-Rt|N_d_#je2?|1VLo*!l*Z0v=W-~$ z2~Ktzp*}Wl^L*+$s08C1hWd~3y%8$exZMKP$54x)v|dYgZu5PYKqVSCin-Ie>@Iv~ z;;wb8t_pGem<`{=ee(11g^{j>&>?{dp>~`0OQ|o529j-y=&4U@ca8$6V zbu;VgF(Wa1cJ<5#4nwx@OX0x!?5g^yb+e~)xUoMTW}QjIMuA^#4ti$dyj{`bJcZNp zm38$nAByWXH~!g`CIyp`oi1m6^)$<<T8}Y0JI@ED%gh0P4~_@l0(rv`{s%Y_)c(PIP+I%~P;Z342!0W~0Q@qD z6dJx9EC#Oz(K&~|3G(dWhrx?My}i8z{1~hRlV}uG;6WgIfUwR4&j1I3v%%3|9hePX z3x>e?;056IU^N&9uK;fV)yR0$621|<8C(qB0zL@d3jP>e1U?Ba27d#71Kb9F6MPdy zJ__#w?*#iXAAB23wev#wSdiH_JQTbaJQHM=4W9#k7c2$82iAl4fpfv{gJEzvcrW-v z@P6yaHSc-T*R>g;#<<2cHDjfiHr{FX7*T&w|^)4d5TZ=fS^$ zFMuC|8^Hwn=}TY=_%e6|NZSpc2)+WI0d4`yz*oTv@K>M)NS@c#;fS(298m%DZssH7 zrhX|ZVBXFA%eXy^n<(BgKuM0{ErUzhw=|mL>{}X90q0lvYE}$7(rt+fn0GUpM}y9v zaT66V2aYvo1~rzL*)yQg!OX!yjSGefIEO?1$E16dO9h;hpfrC6)qf2YaK=JOQyO$M z9*7D!SMuLJZ=Fl=yuRB~-_5*H$hP{V=6PeC#v_d=J+@tTmYnP@KAPv9<8hqRk>eaa z2|=6ZWqTai9XYanjy#VeuOmmE&ynwOt{Nk;l{NUpj7yrB!ZDl~hVk*c!c)2*wcR2BQ~U;Cr&T)WP2+kZ++ zb8Ua_Rj&IB46jOmBdFvzfkVL;!O`GLpx*5N0-OwP2J66=!Fk{>!P~)Cz2Qia%slA)4pf;iADc0RvC$C8=1%9<72Dh%!Y#JBDU7Q7>)Z>wXl@uQ`Gn0)BA*&$6WK&;R>jMPlQ@ZHFU1SVei; z5TlF1ZUcf z$ed0q0*+e(lbb(GXktsTO5<$k#$5MlrItmXZc2&11dc!3YWuXSw}Xz(FOY%c?i$5E zNB^$mU-SGuiSs#5(@|0Azf(yk079CHwL3!H74v{1& znD-D#^HH&x2a2CfrTS|kYJHJ^mUH-m52aykJg$@W({DKn^&N$}qf@9+ek4YZIyk-_ z)sHEYv2C&qqT+94JF{{-xy#(P4QU(HcC6~W%MxhoYg*9(P~Yhl``2h<$rxDm)GQTH zf2W9(%|V;phPo2BX2aL$^L-x*;ha&F>BCj|XtJ@&IEj6C8{gyj|DK6u7XQ_UlAXCw zR!MXnlvR%{gt8$J;a#PerWmUfLkxF)8HHSR(O;pgQcUq%rI-X(8;dsZ*wnO~v%XTd zTi${x;^`UXghWe+W@}M;QB|G`PZz0qN#x33q zR)Via_7rYiTFgZYOxF_fj2MAQVKf5>7j!X$6<=T`Fh!lsoyo01-@QJY7HVYd2G5bP zDy0#z93wjI);xo1iQaH<7QgN8&1hwk^6cx5q$biKCAIpFYNEsO@$@$4OMmvnrN0~D zN<_iNX-IwT`$4ZFk{2mlF3sJZPAXPi^B(@De;ZC)<_|)T=GM%p3*per$df=-M=AIP z5Gf{nI!Gmi$AAcr;mg5G!71Qn;I$xb;Tu5Q%tnT(;7|BH4SW`y4kCOyGeCq+rxrwb zbP%S)2#r!?hW`f60^bMcfMdxUj~KobWYdJ%a4;XdgWorTcY%vQ3H4tGS-?Br0G|dC zX2UFm9fn)8A>rE~QiPVO;Xi|SgIZWF1+}s4yP&qheGeQ3-VaJivm87hd;pvTQf_7o z=8wQR{9XYzfjn#Y4iMortp58`P(5`O_#F5+_$Ig-da=j&LjZG?+wR_&JyY zt_KeWp9R%`P&&AhjwmbXhzdB8uQXZ(^-P8eDA#7h4I0TyV{gED3^$FvL9<0kRKR%# zH}&hF(lJy(O8_$x1SRYn${vB#*kO-AiVBzmrWz-LW&tHC;Pm0Y#+{&(>{0=#+sybB zbdGSTfO9*PeU3X_Dj+q7>xN>(P#qQk14^#om31b7oMJ1Y2sHZ1jXYo|5VI8yIw1<)j?n(EpaHI1fEE4NYdxRlcaaBAc>%IWqc;&7b2 zOZiq0rvdq8fI7qUa9&jy^=m&++590TW@Ttmwq=P57^RAJ+voC`8ds3w$TR*^So4e8}MeWQuNFd9m&jFY-A?=(&v-3~x#&gC!;)GLHdc2o<0qx3SJ zTqw2iOs5)3Dx^$}DrUsZG<{IANT!zR&aX{aty%1faR-#UVuVLhN&GgQijOKoO+uHB zw;WF615E!s6#w&M+O)zPj{m>8Z|bH^7uU-+Y_-){D3NReOar6ZHfzs-bGCVjak$gx z0Jd{YhF&}8^#>WT1_#vs2a*rJ{mVhkZV?^DyqwWqKGnQ9>SWS3n4xwN#$RXD+xyEL z7`#hmqW%)(p5{8XvBp$6?E=pP88OXk2xKiY<1x;eEqaWGVU43mPvLbSol{Ipt>2DgLY=0AF``tDMyz>*)*RAZyznl{tEA>|=%^k-H%lG$s}CNR=fYn#_B6)7ldj*({SlkapLV0B zE7$7^lTu6%ru$z_qAd&ekmSaNd--plA~n%uahw?suFA0E!ccK8fu}7sV!Z9Ih;b{4 zEMAG1nLIiU3F-gsvA7B?y&Y96 zaakHF8|!#6Ts6(Sm-!KhwCJn=H-L|T>KKoLQg;6o)VRM2}mO}P)HCz^+e9r+l<7Lf&we9FK5#q)XNq{cptlR`62-sWW>o$yHM@V#KIcHOh?( zZy{DSjkdIip=BG#5ccOdlX_b7H({}HuHW8=%;-6XE>_^?)`YZ2OyhWC9kNYdJ<_+%TFw|sIQ8M*(6V5*U;>=q-xiYo2h}FA&E}P#jA3(Wj7-c7;{iozj z*QsqQZ8?2HakJwza##vyXQC zs0Eujg;}TaYJIqY=L%-1Nz1vmQenmDO+K>AUOCS&%2~}yjKmp_l#=&dun2q)EC=_2)!;{F-LGbvDvG#*aj-&BTo9zjarl%)NqdhR37x3@^c1r>ncF&rF>lgDsP3L3Rc=8 zTd<;R!HNo)m9@$y===~qQ2}Rz8zN|AG0SHPR%YPPD==lp(I-XHn_o(ZWG9uBdUM9W z7EHIz-{;I{clH`a|Bu^}BcXjQp*4}v8dvr71vjZozBtCYcd`_}k}kqmV!p-&U9lG1 z)C)$&RFcA|FiN;D^(!f%@~Vc}Zq>{*m7;jFxl_2?M=@23luL5`8=))5H%*_;n_Y>w z;_BD#mRr{}TOVMtny5d^V?tg1tSalKERT>|Vcpa!22SmQ)Dm5)?aG|`8HM`vlLBi? zNkIb*K95PPlGm-4AA zx_dt2*33^q<$sl1BO1wU_Y`GoL{z}oTeNPw;J0q3^z-bicV1v(dTed;{IwjXz7v*6 z#oCUh$7GPJPuu*cx=G@VcoHu|XSdCWc5U99-gHQ`L)(xVB1C$QKIt8I*9a_RL}!Y= zrZdf+NaiKf;U($x+Z1V6mrCU-2BBm}+ZuLK2AQV+wi>Dmx4#%lv!g6BB*F=66Q}DYn^~Z6~*omUk&{4{~ezxXyK~#;%3(Jsp%v{|ayvcqMoSSO;5EU>Rcho+Dj^Ys& zFt2Y^i$P=OMO46f2w&B9(D|`TSsRtAcWa|kRKQrKv}x>g)9tvmg(E&#nN%0ZAJS5! zGnEl-U)kff_@9v}b4GA?L}%buM2dE^ylUb9{1wjiUt+dPTb*KdyX(;7E5t+Ixn-le>$Rnp1KW(c|WqqQi%DWHNL1Rf0rz`t#{33V=sOL@tmxJk`o;3s1qiBq=qp&F3>O=)hf3~gr_sF^JN8L1r zZ);?z&w3oFhtV`+8-pm@7)05| zVBNO6eD2%5rTlc;1HIP{8l$~IBfX_)^Tv?0!%V3A{29_GT0+~J=Wla-&0Q1=4Wg4l z<<=iEe07LOuL8DtZ+3a<&^`-WfxCHoLL-(kGi}q8N-UKA!Pb`0y0$|%hIW%JsmX@A zZsydjeUY)xk8^QoOUdG**F4LU`#jZ7dUQToLYs(ZTxfH{A(5iZLpj>Nc$y^tz{Z6_ zlg^!@S}Hbd4DHcx^@u%*I#wqZXpfu1L6M3bEhg%SNvb8Z%N$nU$h@&)@^Dpo{7E60UaG+@$mWrPO(ppcE587=7%&2$gSc*Dx(bxAG8y}31s ziLULXwtILqzgb5@Yu$lqB*npr5hjjtQ1=+B5bA9ja;p+4fj)bW|lp~#DNAG-#^*cnsSAk~94n(5lc zXp+jGc;Dr|hkTBT86*`(gT+8F(mqJeXf!WmtSLe>YbxSw?n}A5A1eJV4y4lQgmqrF1G12c^4xycw2B7ghNBS89Xe(oAv1?m$zYR z)oje;Rhu_L>s-gix`r#O=NfrZ2kWxPslM~7`G2j;!jVDqVn_%3l$F`i&51#iz8t*Y zTJw5)zO*pj;6^aLzHXLDMa%82?SUHnw@G?}*YJpWf*K6@dGdr3y4ozQb=c3#2ajvA zB56b)8=ljoFE0l(c0{Fu+C}fSqW6r|5t%k4a;Y>|x!k67qWQ{TSY!F5o?Ib5)uq{) zqL3?HmzmYmm2ms6v{MPG^J!e-d(cgxv3k}VWM3an1Ispnv;cWSPY-YZ?wtb(?D#{8F_vZC^^0u)bq3HFs$_!7E#Tq z2To&$m+`v-R9ch4N5P9g4SyGddc}VU_&oR}a0`fSyYM^UW#E56J`@-}m^@w%jsdGc z=`E*%Gr?(~G!NCFdhm2`1vmqI4x9 zf~wPNK-C#G_QIRM>%iB+>p|7X*T8qcFsMzX3&0P+8$jtbn?b#Rz7f>svzx&q!COF$ z4K1L${Zr)C3KgQPP$7yFRK#Z8bh6R9UGBS0^W8KGSw7|4@;&Rjz2LiT^WC=lZs-jb z>{>@Qx)V~?X}-!&Whmbm(i=%;zIIWhB_vIQ(|DbhH;t(q7Z%b+H9%^57tOP3AH4C) zkMa{Ozlh;t%2|8&2lLmCTPXLYVP1&5s1TxU2vG{rvM?J;DG7;;7f_;FiqaK$6hHZBNgIu#?BcM6zqd4@2xU z4~TAMr+%6u@CwX6hKjDG2+1Z|Xj>i$E$<+-VTZ;O+Ez+v+hzj$LK~B}v@lsMixpk- z)B5jRcd{iCt`Axw5fd%_H-a4rG8OpZ&?avWOS|aTu@P)G65cvV zc{~Tb@NllQf|o`@OI;~=X|xo4myv?+vQqGpNa(I{p(T=n?~)XJn-E)M zMhadMDY{Kk@LfgF|C~f+(Qg9zC z(MrMnp{%rgD%5Wb-x*MrFW={@g1VPG(`-z&GV*A+t&E%vWhG;sbhnamCX|(or}%En zoUYr`zS~Q_+tG}7HtY~68@8cucT)9@_^#urJgNGJ{W?n3|0Z8NZ&quFvkxTup< z?U_L|acoaJgFYu>@vMu9o~OAu>v?)~SSLE?dV_36kKJyFNzZmUO$>b?6{g zOCD4*QDU{Ee2%kvHd-MsBe0g+P)^A5Vv}- zt~*@maS2E`=T7h#a49IMooU+~HMtKQ!|(5d3cnoW9I^8Qa69-z@E}Hr2SB~w<852` z1n@`TQ1D@}7+e8P27dz9fRBJ*1y_RCfRBP2!yW_mzGW4-27DY`4?Y2I23Lc>1fK+7 z2Y&``2N_wy0iNwyP!^}31CIeWfZ9#45j+w61vn1e49dR8%U}ceOHfk$7VshPRq!?N zSKxN=b?{`ytlxmc!L8sKAU2`GNa)TV!3ek=ybXK@#Lf9L_$P2D*al)bD*P_^H}G64 zZa0_*;ubCd-v=)T{|Rma_kyzU^dTtwPX7kg^!@{?X(7*sPX?VN>Iv)vs^KJp6Tl>} z1ndi53?_rT!*%+BGr<&)cezdwyar4KHAWr`YVebC(XK8;+0}(8-jGl#*6lkkh5ZQM z?Rno#qp{`t*mpag60mM3xfB~0eYb4i&8#k#kd1h&i;ba8WCX#XeJ$Znj!1FM^S6FN z`Tc3~*C95E3tN5RZZWF0n(-tVE%7Zzs&IERwu^ztGEq4}hTPCW=0=5x;A#}5TO@Pu z;weaY`%u@-Rh>$}Md;s*QXj$yxY{;h1f|`+fQtaXO#<#t!@RRyz}?-lcqYS!1l*l1 zcZ!TG)c=+cI^#V`QVF0V-R|i~)6<&!lE4-G`H3JpA&cxu9DlJZNcr;Z0O=;9Ww}j? zv-LUt`Jt`Qye;xxlw6#Y_Q>v*Ce|fNdR!>|s&Yi5p*l;w&XmDABdl*t4DBGrEs5xc zk$4MQP+$Mt&(iGMzSF*ur(3BUu9&&RVY#=8?G_3q1=sZxXQ|g zn_PMDWK#V;6`9HI6;IB~g|c#9K9t=p7;j^{USHU-H$hq1?_MZ-6nLdi>Cvn_sQopM zn$$Ed-)|^=@1Sd~=otF9I<+Ui@#Ysnt6eMFNa&F<@|(hFJUSh0iI(5AZ!k(Js(7=x z%efD@@Ftn4k%%R{Xv5z3Q-8fz#7E81D1NHOdsgr}p7R-bCyq;!^&;<^!j zO3B@ysAVpdfhWMuo>M!|kv1_}`zZaMMpc)0ts8S(K}oHXOM;R_zK(*Dq)oZR6_ob1 zr?ApZA+De#t(`7Cy!4%QQNJZPNp3Pa48z4PR@$26rV-rQEvt)Tr(w0LVvuNLpVG)p z7lDKMeF=CD_$6>W_+?Q0N-hQK!OOtKU?q4zcsaNloC3Z8P6dAnqMZx>2CN3(0#R+4 zU747{HM=rv!GGdD6U-!Uvq7!pc&6}0Aje_DO(3#OSi6Kd78}+oi`@<3)gU_>!f$}r zf~w60;NQU;z`bBIDE;9=@NDoFP)BQT1+M`Yfy=?g;6vco!N) zf`|&poQd%bI=^!%j>3|nJ*n%a?YK4#a_72{FV}6A z?OD7 zSBlyYc~K!m+Yq9dmo{{*6kXRmf88e(s-7cfk3&*P&|1H0AZ0o~LLF@Asuc zU9S4+C>5@Zk_vxEd+Q`}buASZQq8VZDAH4VuIySW)IzCisZau1*HYmMvhK8|5JU6) z-a(oMXuTvDWYXMZu# z@TR`KQ+5(~?W3JWRGmt{JApUtrkhP2TcLNE5qg)Iw;;CJZbESFs@amK&50E|$QEr~ z0`hB##&-Lf#EP{zuEk{~Jj2};bt!LY8udjTnM9r>( zmBc42@jZ~shqvBmbf>2KAX=}CR<*A5RIP~CYL~o4XwC50|2tHz(GvZNs0{~JJl00e zH)z$#jt=KoRqLOitP1r*D648srFmFY>oHK85|f?dpsWZk6^RXT9+VBC>Dvn4nz*gt zt#)rIDM75@y^FZ4;60l0!BV_rbSV@bE~U}kiskEA*mo_K%WUR4^6iP`v1-+R#1s3` zM1|3G{1SL;tXTg4POG|u_97uzg1OYE%iZ6d)u#`-KEB8<$x=bP5!qL`ES|_NDPJPJ zt0|3=;3a!+@_ehzE&<8Mir>?dN@n(?)VM;v;@IrPVHK(S_~~tEkhf%hlL4zCl~}DL zd<|*0O8`&6R*3i-&>k)dqPJG){F8eqs(tUlLQ;@+pG!}@jBJ{vO;;<0LK>0FyVT{4 zyHc2L`96h8RkqFD6mD}7j82ZHI;=doaaa1eMtcpR7q4hGd!QC)`B6j`o>uL4mI zhnvBnpc)#>mhc_mY2bIjVc-uymNDVg;BfFsa0K`i$S5A(2%=UFYdmH7Y1+@vD092i z5oJ}dq5@7WrDxq{xfB+Nd^eU>#y4P=;Fgaz<+^>~^HHv@8&B-UCk3rdLyImOc9idy z@4FTHZsq_<`F&K6f5056sCiz#)09)Qc>)@6d0_zq>7ykl-}5`6M$YD+gs7Cxn^F(q zQH>2o&5#6+WO#c-Q*~6-S-;)+N1E!3mXnr|*LRn3<#S3uGrn&job8P??S&^P6*T4^q7)GI@rG9{ikdD<~XQ(D5p&4EU3Rz zv&qhRP=|3RJH`CBGR7<@`w}+{MGMFGb*N(u^#x)`<5#lGs>@_H@r~g>JrlQaP&Ph| zIySy9Ls`i}n-I2f^8p6_|CKxbF|F(HDJKn8hAtf@I1E`rzu)D4iu>#sC7{A62@A6cmB%Hf-Q%WOwHZx;RQahe29aX~;#!MnCphb<>*M19rQZGH%b1 z>Tdc)HMNb^Mq4IrS~i)UE0>ZwPG>s)OSrqpt9L2y5As9O)gsq%eu_25-wY1K?MCo) z@Fs99cr!Q|YyrOlE(SGie;w5J)o*|=fVY8168|?ry~e)-ECcTZr-0uAr-OHcD!Y3? zNo`X6*pWq)9a%(Ka|@7zg~-^nU0@XHT6o{R@JIs_LFj3 zwZt+BmukQ>n`Twnrpr`Jl=Hk~K;`#AZY4gGTi4|@B0WPjsCcJ?CxA1-Vc;yV5Uc}B zzy@#z*a%(^UIprq$XxI{Am398t30j-mCieqxNV%GY~vJVzci>6?Ux2c1)SY(h@i1U zZ~4rWq{eAlRU%<&Ro-x#%EEtN^WMb96WP1Jk1wY-9>Z7d_BH>jPh+OM&P@!HR~<4Y zX7dRsy^dxw@lF{Z!7sZcQ_a86J(%0OE`w0Db=4{s;5Rm=RVa)~^djzNJ(jr=Y8!HM z3(CuL-H)4igPUT{=2rEqyxc3QQFu!R3F@llL9qCrNU);1~G)HmE%Q8C1%8KW}SFl&vXI_RzO=+vM`OL&l}<3*G#&_E3vXdUC48oIpci zi9zH&X453fFNvNM`=0gNQx>N#bjX-jg-P`LmhtD9;pH5s>GT>H;oR@ZQnqUH`rdHn zpR-`SqU2MC(fT#>x^DLZj#80$+F~|4xZLQ7(5$p1-OkX{5?UT9T5gW!Ek`GnmUiekGJTPoVpo(ORlwXJ_MCAdEAiHf%MZ>0yHJy`tO zG?{=RrTN*UmI_`H6D}D=q*v zH}O*jrI0>d&`%Yv^@p@e^QegJpP~UbZ%_N=;o3%{bWIHHzBT2RqMmn`)(}IS8KPZP zo%&v*Qc_YPx30uI7_7MbWhgC)l4Ts%RmoioWu=05ptRUZc6LE&F`MkvFl=0D zsF_eR4W%ReT8bh3Lh()xij!Mz%gIJ#ABF8DUjb>M0)vP&)-rmU@`P7UIe}lUJCvfSOxwDRP*^Wd9ic6C_BfC3dqQ_=^H_rcQ#Z&2AoYV2^tAk{l%W1 zSC6o#=S2m~mxt6}g2woZiR=IAA zd^aNnPP6ic6*KmEVg_bo_L@aD=kfO#VhE=-48eJPX5hVD2_4xm>7ziONa)ZP6HVmV z3tXXN=f=m-b7$`D@~< zSn3++K)l$2xN%G9ZK$_-1Ef>k3*OSv7VEH^PfX{Wpx-=Oa0{Zy+u9DbIyHa6o5uCc z^x&%tUc#SE?mIb_S+uixJ*O~tMig;!+7p|a-%Plr=<|ub@8=tR(&rm};^!NEpU*S; zSNDEyv8zcUXnhV%vXxybYSwC)pF{Mf#oIQM_<6N>TdAK%^tRX&KZkN@O=WPk#h&yz zL~k>m_Bq7dHu=`jj?W?9*7N?=1KE=y)w>EHtlW7yl=ej@JK7~?Uj>Jutlaq*s5!>B zF&PUuhMEUeZ>Z~_nhX_&YB1D|zS}K6waBM#gK9KUb1!sX@0o9h;$eWc*MOnF2 zl(p)lzGJOAiLzFm)c&niCs6_CN5rDO6Et5j7ZorsAJoT!`UHsSZB{N-543WrsDLw* zlx(_lTqk>^ZIfFvYxy;{6qGtRktma;`Cwl+w}%D<4K`OJyk?DH^gk zGpD6uh@sgj551@Dp-5=3wFT0muQm)x3}v;1hP2M6fw~K5YN^u@@i=Z$<__l8H6W$q z5OE%l9J@zEVbpYg!hJ{k5P^w=5o1{CO_{6B1Ll2=V$SAH=k7RA#P)0La1e(&+|)TR zw|}r>p81t2PwuPDuL15a`_(+H=j2yoI(-(D`nSJ(LL0gDd~$Smg(x}oGOb|e%yEw5 zr#CFP>sL%ju&tqbCV96S_-0-djlW2%@#qcF^N2*x>J#hd7?2GJOryaPT^)$Jz=i{@;RUf^UGO;2*(j!0q5o;G5t#!MDIA;M?Fb za0mDh_ztN0`V**fevx{$-At72W}*W6K(X<~&84sd>$~0PyG3__NIngJUnG=uck^5Q z5}#eaH?bv@6$y3f2WdBrqnnvtu*V!$Y2KM)HNz=sH+)34Xt!xkuyJo+BpJymGz&qy} zY7zg>G1P7RR|`$nHh1T2Loq^h8a3JM-tDOQDtU-C1EetO;ld>yN6nrNn%!&m#>6V} z&WLpw9qTYE)}d$G!Hy!?fA7$(;aNj>{NZ^Fg)QlcOWBk>s2OI8Y=F1#Ya7&&OM|$k zlS+I3#nU$8@*el)+}@?S)JU#+Eq5JvF~aKiUqMy#Zg3FzE~u>h1N<`K_JA|M_dy9W z{{$ucb12k|&@a)3>B&RS|?mv(dOHXE%dzcke&-a3==I?@o!0&;YRqg{d ztFYhI%qrgpHLENKHLLspl-&OUZOG0lqU@|9%6{omE!=+TQdGcMMhLa_ptIbi0?wmQ zYV|>Vb<tq1%`8e0|Gyse5eR`GMJ;)^y`nE=18 zu?jA+*z-9qLEpudluj{_>))!vD+w zDpF;84@NmLCL`E&k2M)F4)49)YWksKaDDI|R|PouV7t{v*IY#G4s9-?`NbXD5pGw} zI<(%3hiU2U&VGi9gX#NkAd|O4M_KXsfDA|iuonJ00>1?81pG3vGmv?b2xP_cJJPJl z$|frw(gI@pF>Og!D*j4ZiLxbG<(fur(%mvmb5BAz-Nm?KA5)5*hYa=hY)r-eYAeM) z$ezv7rP^Q6r#Paz-D<2FNx7FO<-SWPH}>p{Ud2~{RPJR!D)-lbRPMWhRPL_>sgBEm zRBn#*q;k_Hm7BJJ#rb1NOINmlRiJ z8*MvVY+o(T&mP&C#oga#lUt9iZHL1*Qsa0rn(-Ko<0pvQp*D{6!^)c@_j_GBH1vP5 zaa@mR@@_Mj7_&X!#cRXW!8VReOK;A{w8_R%(%3jk8XHGRE7!E8nnq2M?%eugH;!@rLBhj$ zSGpp#L8ktErIr5tFSbEPRE1i#L6LL_+i8Uk%>y!t=L4xjw*sj{w*jd`jX>(q?Lg|# z9YE^P0wCKUjt`{{(I$0>HrWPA8rvXAD^s>4i*1mkQFEj_wn366bSTF@+#q#`mw#Zz z7t?ZB;KB`FdZG7GYtA%di5IW*5-(mQ%cjCv-#rj{eHSaYXyE$o{zb%PkljmSv=R3s z9dhvNgCET^oml@nXYhF1*xS#dAJ$=C$FJE{#z&xyaFubg4&le-=1&=9+tJm};&QIN z^~1ZI8=(&-PtLrD*l;!1HcS`R_l#(zB9@`7F|EphOseTXuF_Tjxk`HjFb7x(yb(AX zcr&mH$d%q|;9?-Qm5ZzKZv-;kYk`#W6!J%wVcKLFrcJKODjJ?8O_a?-Q8rN!*BS+J zE!GiFf;*!y;vUM2>l%ft=#QzD(WxX^=}F%$8fi=sVG^vgNAT}ZW6aR?AwTas~hDp znxZb)01;N}zPkpXp9EF%i~S8v;r_xx5yAo2;tWQKjybG?XN)GZ_y8- z;eH6Yt*XCzlH017E_^3H!!=YrmAF>Xcx!BLyn$iwi<75ZMXQ}79_?<{H2Jt!y`3c= z#ljpM&zNKB1mGpW0Fe2Lol8P7Ux8gJCT&tNX$y!=5|TC*&yu!I*^>-W2J?VPqa|oTG#_l$y>z!Z2>-9eTnYEcahOierAdaOM zbp3gP?+L!x_?mptCBRd)6Y!!-K%7;3l5byl9s4M-rMx?RW#eU!?&AEK@H*=S98GHV zwrA2N>@(uQwl3me8#Wt3U-ye`Nc(qPCA8DgJVeiVc_v=QXui53-B^A0!H>qVN7~jT4{AveZ>s1FG*`5MTGF92J)v&`)i?R2_n|6Bzt^w9+XmS zHnKMwHQLbuGHtvXQ?E3p0eA}B;G&DhGk|k}=L6>fM*(qna3jx9-2(gz5T_CvaX!>) z1nvRe4%`pC1DF6gxF|#18@&+7MCBF;sWG%kjiF6yjHFRxBrT$L#MFz^(6teIv7Z}> z_KS@~`xo509~+5y*N8YcCUgSB^Mn9z?~|H2t3fyHAid@PxOvJySG(ir#Fy!#@-gL(-Eg`_-ZhFMZh6I_O|dv z2Qj&IDUg#}BY;<|N0&dsnmt z#MdcVvXjK-4cY?M_aTX8Jjr@Q*#Z_P`dHeN#Az1V0@kyjvD_zF9CgqZuwI3Y8jvKu zrAb@B+6@|YA<24I+2mzH)C$BN;h-&God_HCBgyKnYypd#m}Ho@DjWQ28b*KOt=h67 zCpR!k!rt=!Vyu)bPEiaMm*qy7^xy>HGvRLdD~{lH6Vn;paNy$daL=v_?gSZw6`ZpW z7YuPI1RDl8K6_}C;N$$mX56dlA$B7XM{Qj$dy?2?NkGp{@XOvCeLQkpq&~{cu4xNa zp|F+xfOvIaSGgD=VN`TL44JrXUXPH3U7hF<_PxRlW@elb)h=J`QPc%UO-?j$%ueH- z%eV^fQ$6(#{ji*J47|E^y<<;ixW`cx62h+se(tKLou>m2cQ%8AD$Y}gLDe)dZNYg8 z@mL}rIjJEYYsDk$1@Slo1=p?<%t=J1E9(R%PbGddmtjtUX?;1cD{vI>RNxiBvw+Zh zu?QOiUWVs1;ACJr@NdA;z>~li^+F>@#92V*TQ-n#UWHxO4YbL+fwq9P0)HiKrLrkK zlNWwLpYR0=J)6BAeMVkqC`MTaILbO8Mp*|I+ho1@kP;keaz-R6qI;&$14GJc3Rhm{zF>t7>EPxYNmC1%#jc;fh|GN?quyi zUC*y%bh38B#-k~?9SOGS!nPMSo)hk5?SrjM*!II#Ds1d8PZPFCBO!PacjwtX67P+Q zJa~Aer$<6RY$b`SqW4H#W1%cK58;=HpSwd69}8hDbhzCjb6|w&-AIc(u7QzQ_Afvl zXoEatFQ_wqnTm+=Bzi&b0ege?KJXzhN9humC4T_?6P`Z={ss6Eka^0Bt!3|qHrczO zO&)<_NtQ>TXp?sou}sT5ifEH}6tQ&6JBnzNXTe#{50#+Bek+g2grg~&k_5DWj zYjH;jXXlNYu}cd>_;(Q(OlA1+H2OTPHJ z-Nx4=%)1+FOuf+UHb+F}2x`~%*ektbkxEmM6!xr4UV!zCvqj<-y!Wm#(GTmQ4B$#{ zT~ritjfo;c_yzHES4HhSHah$@CbJq~N#`n&h+R^5UYx<@;n|{&v6p(C`#HD{?A*`6 zC%KR;uGqj6@2Qnnx{11jb%kx1_IzftuT(@_#xClPr9jTAGy}PY^;O{cz-2&&4wtoy zHLT^poA7)O@J`^pz=wg~0B!-U0CG#weZW&8?|$HUzz2XF!L0-i2IA89Ms8^R7LaA( z+dyXSi?GW&i8fg$(H5|-$6raCrfdQ6olHq<(KNCCrS4GGtHZAKuhoXOuZB8vOO&DQ zc&)XauUFxs-{p52uCYHP35S9_m^)K_s&BY1f9 zbrtz4!?dQpcE@kIqJ^O+O#jh9>T4E|Tl}(t3>7}U&{zb_1=*Deh%qQ=;=(+HpiHiTw&vjBTr~j zNC>}v_#IVRf4DvOwoGW6)yG*#MNUPEbdg^pb*c}$Qjpb$-K5LvgB=5>xwk*8-@(|{~TxVB1EBY%NiRwJ~@YJ|3cxB^bn zzJ+H=+pla%VwpqIL^U$m-nqHPs4mu^KG=gW8Px?|>*|89SBTf#xhWPJhKj9|*zL%E zwB3D2w;C-p)O(Mt8hB@veUlEiZ0Z+iu=|S_{pB7_{Q~{*WbpzUDm|MrQ87iT2J%HU zaESXdKaH*W?2U2m+gAPI7($w=|0TTl&K%GWiwoz-AB?X0uJ)cXLiqK>?|(w`P3?UP zk?M^f3@Z}qtJGdr4+pnRvn2X9P0?dtEZK{{On<8IN%+lI^zKj{=E*5Q1_isf#6Hc_ zffMoE6F3cc2JjZ(nLzd)&I0}r*bB%$%-KNpe9r-X20RzYoqs_f^ZPs?^KUEcQblQ# zDoR_xx(dqjb1T%6xz8C(hcRsYpuLE128x0u(}O< zHBW>{d}|=;mdrY#n9c&CYq)$VUdHHdzYpFy_}SfU@0QG-NU+O2Q+M>k%w|1yzgGc| zqYatwA^wf{*@o#t#bAEbE8_L&nli15fu{hc0y&hO2INq-6gUc42Al*e2mT5;6Ua8K z0{92u4M1+woCT!5R|1*-vw>8I=aElRA!w5dL7O~TplEoOw1~q|%yCR*7TG?(*$#yZ(6NeewXp z$J4O|Ks(&X-OX^=C7@0#bp7!r!y!7=isK8f#d3%HvN;2VJCl2KfOW61CUju;_j!Cy z2F)p6bxC9|Sl^}Hg?DM|TN&+vZ6|jt=xE)p=VCW?Q;{khcG{Ze9oSC7`!tWH(GN?{ z)xd8>)-*PAJdc2T`t=5AiV5M@3qKYPWw2-H=$f2jYbDm>5y0A*mozfm9LBO;Lrg_G z$DZhU@HtC7iG_STInz*lH_a03_SDo>_}PZ(N=-Efu`SRfru9Z3HFXn^3HTe}1;A&3 zsld&^>w(V#=K}HNzsBzXe+Q(-ZUIu>bHEhH`91J5;2(fIUzd(7Z<&tA;<)xB?DUS^C6FiTzd+L0G$K5O{HH}&Y#bXhZ@!NaGt0pmAV=(Lfn0X}A&}gE1iT$(_)*}UKt7)hK92z}0{$F0 z82C8wQs8RM>Udb(Jv<0k_@K=WUWMvD8JBlT3 zgr-HD{C3S6c&ELGiM}1aZqoWV_B~*$#@lkP?x2rjN1WJpkKp4R58_yRJRS8-74|gk zWU=9&$D+AW6w|w{k40zkMH`Pr$5Y;$^2cXQ5V@!I(}Ufl-_?(~e-uZ2h8XoM3no58 z4BHrCn-AM)VQYjfENtATohfXKVapJ0`!S=2?HBAGWZ>Z$$5D z>0VY2+=lRDE6SfTSa^u{vRe1D4)(C}Sx9}Ow`6bUi_u$RetCOK=c0GRybJ=_TRI=e z-clbRx%UOWhSGB(@J%3}u_4du2fPk=5pX*2Vjxx_txJH+d?d12ZD)-#~7%qNM@3)2>`wt~jepJZ)Qwt%$@ zHtIo=*t${=Ca+$Lu~~q7FbnXrck6hs*bF1_ynE~EhsBQjufOZ9LLzU|qlgfG z-SBhQBJI3<$-z!P1d6MWhjNQrgl&3XbkJDrx~YLI+b|uyDt#e$$AI1s$c=Ls0Z#>9 z4CKbS{=lKY0l+-qK;RR=6yRThxQU>V3N!@B{22;lg8v!$C~7cp2KLoE05?jhRb-9yv> zO#UJqw8^`Ns0;G$A=(1gYj`We{D!gxtVFz#G@iwk@rXG6iS3X2>(1`k&p8dohDXna z-;nIUIG29Qk2+%oZ$bxbqQCvO=uune^N3x15ysZ zZYI@>HmP2;1*}5+m9)vqrVfkq;OMMyP=9n8n{M@hlZQe71-3>J#cRDMov+v9b#r)M zL38f@@y$gCCWt9IdC2ouJvzw8joZbBT>b1^ty&=N8_t@r6I`qXPxopL?*ykk;Iwzb z`1iYZ3-5csYxjgc!n)tF9uQV>W;|=W?YAksN1Qmr{@b16#F?Bwb>06h`lyI%zg>f% z1d-L_LuadP6GHVElBA%U$ff z%?{_3Ov6^&le>|92tSq<=Cm?L<+fXnKSK!MWP~)SyL}2&4r)2U#CKPVclPlwxt?b) z)yeasTBWEx7~ zxe+0j65wjP1v@(+EL|5>MNhf&nw>Wpa_wJ9mOHKB|Uem(FznsvfFPqhGHJqiD7OvMo9e@Kt5n2G z6Q%l$1X6u22QsWz0Q&*21Tq*QAV(zW!25t1K=R52J_-y2e+e87WPXkTQqDh+?^11O zlWId7){*g7(ncs-z^c%+*_yUa(;n3{pNEiVtSy9u0K@^`y%Dwc(DYscfaZ6L~(~+Xc zlry5(I%d2mQ&m>W5ms4Q?bf#6Bj+V8QU!J%dh_$))~>)lLg_V6j&ehUw*sRd(Vhd> z#;m{w>k5oALimlsj|!s9QP-%mb1u$$BC$$q23uY6Y*$qkRi*CAY7b%&mNBvCrdc6n zICo--N4F=|a5JSRd)JRs!`b};S;INU!dbhSbt{?tpTopHF)pjgZ72|ADVc0lPfj&y zGFl3Ex1ofC~Q%#r1Z_|NlJfOJvq{yA;f+mR{mj`V#Uf% zACr})J1SF_vr~Yl0#60eQJzv0nblH*9*V>@sY*hgs zxsIGu$IGT;JL=UPs8@HQUN!oMv6_w@qF%*a9@{&t&2kmt&P9$Ke1U3xmSPOT}KRX)3*Fl1u4 z6tdE_TMAj}+RcGe>6(mKmd{2u!7vJJEtnIk%4c&S9$Q!WtRrD4-EJqObi0|5((UHJ zkuIxz(J|*FifveCSm*b^Z>=K!v$L%8-vyoy+P{EI@ArYpzk3+ z13v-!!1q%iZ&Uva$jE*U90Nn^)e(tf0AKh?C4H0@JO>kloHe!21{{nl&RTunor zefyr55VR=cf>|w{WECE9T<}-$k-ggmw|2ugVGZPqdJWaTy1tB87=ntU=pFSHX~)J8 zLD%!{df6Dz;JZe=0VdMGBX+gSfk$(=1-1RtsO>kq$1}4w;e%jci&?=|lNL{l+J19W zZi}b37l8#^vr)o$2Cb7E&mb4&cn0H>ZoBft_@o=gCwq`Jt#WKbs~lV39A1miu0v=a zMX1)JZQAg~ZPPjtT1?ij^@LWpP0is|V7nS@*SOinNZQqcD=zF=6^Uz%F`Z0CK(&~+pV>rZbY+%q5bzc(Eg%>}V}Q6>Hs zG&k1(#y8(n517y-UKKPo)7uxO%p!VaEEdsoQ!^QQ;-bry8qq$e!q~%N?aqMpu<}(M z)x&y7+ql7BzWsr=Ex~qBN!zY%-^I92(qL&dyUkrTtV->k&v&p?)&>9Qma7BPVDa{R z=!Y%CE5IMb?D;sOVaf>Mw;VtERpzMc`5e+{_`ArA2{I;!HX5EIJ+WW02PNY0M#IlJ zOziH@7mtR`ZV^Y0eGmnhL+jy~OxQ`g*eDKxR|VVF=T5R67b z@n9H*mCCV-!V3Gbbri0Xo*0GY%9TvOW$H;rVX1m*9R=pXqYjhBE+z|IOd4HGyis5c zc_o!!MuC+aOQ(tgYen(sjzTqD%#@xO1y*%Vk!B6ZCm97+fP8YwfHOO?LKY*uwJg># z>?yMc%pHR?KSPg}b;o1Cp1{X}7Xa4-M*yDyrURb@W&wWzqCE&Thmw^`n{{$Qad0h#Bo11AFi0c3XW0J4sM z3&?cejyTJa0Bv$4K%1Psku=WUNE&BvB#pB-lE&E^N#pE|r1d}wNE+vHB#k>nB#nDJ zB<(>>dq~q>(X_v4S}&x4^cz&RfK{$(6`FRxrhQA({;p~N(6oL?0m-kwvf-{cO)Jr~ z)ta_O)5J)H#aN6~dT!)QyS+H*3^wdZC1+t9f)=Bi@!h_{Nq z-8L*2c=|*9@G57jn!}sHbPJe1?`9fntg%IKeZDDovxn=f-{RT`c0@&wv70>sriU1E zrL+V+MKJ;9@4Arlp6oYS=D6@_K{3aLEzV)pDQ_>&L5`ci4}*LU3I z2fya0zsTx-!X(g(*x$%AANj$M?hmz3$^IQg1*~ z%l<7lFG<@>ZA(SHAZhk#(;n6yO@pGg>JeW9&8N!t!H;H;r$-#ddvA}Jepo|J1U?+A zM?BP-3#5z?elzi-UuBNE9AUn*7wEgy@yLZ68$w=vmy@P#l<@65r zswdeyusg$%J2+gHh9Q%Kp9?gDUj*O00}+Nywz)#G)fJML)Klb;j6ymnCeOQ=Y;iHM zJHt+A#|#ZCm=?*1iOIflJ(#Ml7CX!0(Vdu#0$WTNMqz_X`g)i2N7Ym0C{#F1*14Fh zbuqC!!;zV^I85w*vh26o{bZS~D_tRR_AQ9{(XApf@{g^1?A>iq^e?O4M-z}`uNinD z@GC$Tt7SlzjIRNixpxDZKVJua9e59LCGcM0_kiC3a)ZHrKqmhKz!!llfjfZT0y2fa z4P+v%0y3W80iF*1{vPlG;6p(6#vTS<4*UTy6Zi;_^}r8-)a$>4r|dP+CVNe^$@x=B z8-Zs@~X< z5Mm+uFt3FT8`a=;ncFb2jgPfDJt8jJs2jf2U^U1J)fc36?=JN?d#d~3%J@f z2OS(J5VrDG!Uhe)@B=fUcCr=+R>ACt9*-2PaT}$-n5@K92f9 zKKQyW{0&&h2lSX(lS6M^?(45>UNj%oKa#5v$+Zy4wHRIArS{Be^yF$3$+b{Uv_?y@ zW--B9(A>;92Tak<1$af+@dMqxol?xnQi_<;Z4%SGkp#(MgC|}yn-`Udcs0+IqB*nS z6&QT(T@;AUro)E`G~8EH#&RO z?AoGL##J;g%7JqTE&xDqA;2v-hH5UNCn1^MnwrVVBUy|xgf=Y-;VlGZ0w5?0;1(2P z6eD)73PJSN)J#^91aU|iDUL(o9->D8AbJ$QD>`bewuqjDXnJdECM%CYY$`9@N$tUcrvT+}!tPpDsVk7zShE1a%Io z8tfdz7Q${QObc3A=j?g`ht$~q-sIaoNH@q|T=m@LoNa4Cl^};-r=zBjHg;^J?I~^J zCLu|?QQJ0a+c{|c<=b3UZS}C$X&denP;c+nwl1A)8n%P0w|lkiYMgeG{J^Bu01%t0 zEcRyl;2q5(^y17V5!|=jY5+(-?CkXbu8BDSbe2RYBLqL&@S|U4j=BM0s||tfHIfw9 zHobkwv>F)`4r=zHq#A>oz4oJfP{R=-7lvRssM!No&Ioa*dXhtl9qK9ac!YaE6_f2Q zCfi(0wnk;b;Z-{FMKO8F#pHPxlPyu1Fgo06p_puTF?rg>q$MVkcN``gTuj!xm^>Pj z2`|1-Az9~Qvew09O;jda9$D!yS?yx7%Ee@5R3=Q5_Z%iGTuhd`m@IQK@h(vC5Z8Lt z2QVyPOX1ikV2kZXcLBQ&uFs*a%L2AgNswdJM)f2M*nIWWx`0){_bm>Sxh^L4E+#cm znQ*q}Lx)MFi^)tEld`BxW`GI44?#nHnd)LP#l>WDR3?nhD-M%F7n1@Plbo1LLa0|& zNU~f^GF?nUF`4|rVKU0aWQ2>!(3nj6pk7xYNp>;m?_$!=#Y9g>ya%sarN#+1tkc)P z#-*h#iat^e>MsMH1N!B_i-A`H`Gu)eAeWp%K;}{!kkw%Z@D5-mkTuD8^HO%cYwD7J0ah`1ndgD4ahe6b|Bl>zaeeqWDIR`GKMy}ge7TQ z!jd#DVM!X7uq2I3SdzviEJ@>Zk)&}6OVYT6C23s3lC*DW8W*!9?H`)Pr9nyShn$dp z`zu?(nyqO!YTC~=?MY4Bt!eLSS~7A>^5b%!l+mDR^E8b+kfpm{Y1-$S=12ZYznRLG z#1A$q+7eCUZQjxyzF?vF;ae4o)&r$M%D|_c6irMZaqcb31X54gf3*+z;HDx__8Uij z_RR|S#4xWBKa(Wb}_VnRkFIRtf&GX3Hb6o@K_JuN1b*x?s-`bElN z7plNJ{o<076jcs8V?qx5Xc6aMM7GG3V>b(e*!RK=0Xt;gZ0{0P5IqS&^cHctMNCEP z6IsNr7zD9@20`q!c?F#qRS-Q1LG%`Vx&?xeMeMFY5c_Zt#EzX;&`D7R(UTBFZxJU~ zs3%emdvuV)ZXV>Y@8^}%HL4tX5_0G*%G?U(XPI)&q=}xN<>h(ZmK5=;xnddx-^Ru4 z$;s{++n?Y|7nmkCW@KPjGctnCwoEVqeV?$Ck6&CQv}+Q4@7jt^jGW2+J#6MoZZ)1o z%d~O3ZmaI;gSdE`t3^RZkn_2{#C$IQVm=q2o5B<>A26T06@3Qzfce~=Xz#?7nah1C zsM`HoXc3kB`s(IIJs<)3&=Y`s=mo%jS&A)aYG#n^#xZ(s(5uJ|dTwea!$|d*EXRp> z3vpcl5Z4V5SzL7eq*o!1o|~GQ zSxfJg;`RX`Za*NhxajlS^eV*Bb5k=JMiQszw_W)>)y(HNjC`(Y77GGMiJf4GpzQ%f z4q9~WrdJU(dTwgw+JYx&j&^UwOGw)WfVAy^$kL)$_w*{H(Q{KX8AgyMtNSf@32Dy* zAnheUWNA?w_C@q6q|tLzGZ{vZCR+GKEqDoOPXi!rGa!;Qq(!tDe)<%`=(nkv{2~a` zv)`^Pj-|?vf)N6?9)N&t07MGdtWD8d3VIbGqvxh(GW3K@H0H7fUxT+0w-x|#>j06( zMejS%s}M)eP0eH&Nu12&m3Rwrs{jzU8W34r)TPHo^eV*Bb5k=JMiM7;c^Te9+;RZK ztpG$4$K;5X&Gah7(Q{KX8AcL!==r=5oDj6d00eC*AX3m~ZHnIYpjQzzdTweaLr>6* zuE$)wg}C_uh-(By5*MQzx`2+jyEq(kis=1#Peq3D>%2 zI83&)%q(8Z+D#bka|CS2qB zox^0Vi%GqUNljEHGr@%O#xRUdrHjc-7n8E6Oc;`t4wI=aCR1EYCdXvb5p}c*Nui5L zfs08_OeR$hlPnjLOc#?-R3=OlWASX1i^&KVlc7uyO{KIG4Za6 z-hfsJD@`=4i2A^>u_hX{AKeuZ4{bdoJyCiuB|%n1J=K$}h9%y-0NcJm-GCKRzlZ?*Zs7!cs$d4T+dt6L* zx|r;U$>eObt12YhT}-yQm~4&7q{(6Ol8ednE+$)|GMSAaeC#mU>|*k?i%CmVCd}fy z(N%$A7H@DdS?^-i@2lNBx|%Uw*C z#bk0bx>71SOI=JByO=DD$z+$qq|wD>zKhA+m`o<4GpIsR?_yHpVp18C$ukax3uJNF)tP1XBAwl@2KY%o3mvd;ey$ZGo|;2Pk^z%9T}fG-0-1?~VI0QNuy z`x)?T;J<;rfu92}1Y#k&F$LHG$lBWn#QMDD2V&jaN&w<;g4GGgin=q9b!{S$)#V95 z)_4Kn0^o^2R$eCoS^snevI^-2WG&DgI30?NFf~%4PX$sZPXkh|P6tvmdIIxMF3$q8 zkoN+zoFWd5ENbTfSz68o4)2Of#DJrK=L0K&Sm$r71NH?r01?;5`+)s`4+1X+J_5W1 zxDMDK_;cU@;CkRd;6~se;J<*$z)yfkt45AVh5!*v>#xXTxt33xT+62|U^U>cq|H;d zfb|1S<8cb7< zcP^E?Cp7Kfn&v~cq8yp;LX6tfb)Sr2QCIa4*VK$J&A8RYIO3Pe07c9r*poRpjjtnej$=?-kgT62h-1e#|gs+J91w8 z0akzYBnMbb8orZvy$@ASC9cV{+d(A{7>-%@t6^T*4DooteykOb`|L+K?$dY1&y)=r<>>^MX;E>Lgb%di7HY!eUwhK zwHt3r2$9R^rmuG6j^zm=wRTtUP8ia%yFxp1$L|D@6uZan9<3d?C7mGBbN5At7+mi8Tu(q3lzqzzn%njsHgs-AJ$*Q#ZLWIS6*LTTTxzBUs7LD zT_rwcLCzuk$lYCM#r(?CkfFGDx?^{EqUn>9H`q%^8ET#6a>3^$T$qf_#62*1KYIp} zCm$T%1EnX+gfa{>>xCeGT@)R66E`wGNHZ}6?F!7ob9Z1N5FbHrtOUYu<6PjWKxQL8 z{MNVBBzmYnK zoNT-vh*I%Sa%Hx|aig4IBkzC-X|+o4^q8ZD2Z( zHyC9CnJb%Mm-QHJvL2%?Adca%EGAhi;EuL{^=;T#?vgCVnYMtn4mOsyB#YWfTfo`~ z8_QynxObN}d@2<*meeGRdQO}CDwC9JL8g=|>P7i2NLF$^pTryMkFSf05$lnHw&3G# z4V|9}@BbXHa0(551N+u|Y z>oy~>k85#4VD}5VheY*xMn(8QL{EQm;&of5vZ&#xYH~|zM1?_~A^Z~Yb5|H%_3oy+ z3H5MUTT(Tn9PXVvNah;qzaB1Z!!WGD1L_EU<>iZ zG=_mbAk)YXWEya-TdF5*Qax!4SWm0BN!Dg%Q(tNIl<2xZw{a074qM&CNo{`eA? z_n|rP1GPAyiU=p+R)B5felG9U$igoXKN@d_GvWiRF?O9T+|Um*d@z0=brU4~=}=cw zTTxX%Jw|>9(WyOIRp;-(V{v-J^y%fbg2ohii?q?zwX;j=1&#efmV@F6<#i2}_0}n> zY}BAs7N^zD$f>BSHwpyfVH<{#1~U=j+YGdG3XtLElpki8#ME9tAgA;O0Xe0|IB`mk z!MRUo5N$GpXbXrQzNGC`?gG}t>e||Q{e!jTH#U^l)t8qAORHzs)Rx!Pq0tP^F0Y?i zT^6jU3szOv<4x7{iWv>H!Vs^=l^19$n74pt7W@q}EP+*_%VwtOQ7UFv*Uk%0XX-MI z@gA0%d9lP;dDX$*Gs^3G2WzVv>MN?sgXo_%)Ch7-gO^-+d9bFodRob}%6Y+vfre~q zo7K0D9O`OHO3OufxaT7{O{(XN`a(QSEUzi4EvYX@rq-9wD6b7x&nd5+URixpu%Ze% z;r3ovUt3Y*_@Br}&A=r{42K6?$>M{Y0ZXATb?9uCyIE#rhl4p6ms~vU;>fPiER`Ub zWx@Jtgs7svqNK9o=JMbddvgUR{enqBWJ3*AtRBhc2}I4z>iTLZb8SVb8Qcgi3rZ@> z>+8!s%+l)W8fKIC2%*$=u3N4GVP%w5U05G%s4EW^W{(~{p}eFF$&)4$vEM~fPnbVt z!Rh!r(3*fes41zdlW~vaMX1a)>_Or$d(etzG9G^b-DJ!h=>=$F!F|5d&U z`RwP>7p#g(>hHVSYJN3zRzrta2-MQ`&OuTXMFs}OJ%y=c=Pp~fi#SnhHOdwzAR(_ zrox2j$j`!B8^8U)C5oWHlts6GAG=Eo{fu*8KVQlUZ@DE&IagrHN(9aCD>Gzu7P8(M zQrztEWyFhZyWckxf^uP7SN9l74_H{Y7oGDhk1wNaa3;y`%Ry97AcZ+W$ZDRMutO0P znDJuZ{XUL5&xGyONgKCHSyjCTWqN!Wve>Ke`wHQU{STTXAlzT21E?j@RO$a3WOH6q*C`K38g$SQpEPL2=^W6EN<{63CSnJyR9 zzBmVI=hx}N)^l+R%CTw8 zG-Mk1ee}iDyr*blyufP8I!pNC4SS5? zp1WSVL(1yFf6Qnnc3 zm6v}*IagrH;<(E1+lRllth0rzY7nt?u7k*(hzPKf8ZC2!=6b z1wr@wrXYB>taF8|+qNcrY*TwkDc!l$}-!5f6@$_RuKroCct2gL=9|y8_ zew`<5-%Hqjf#C&KQx>Xq_}YfQOz574J2BFx)GZU=Tn#XcDXS0Yvfi)@(D_2v%hyeM z!|(#DDXXvW#kP%RX;UgDQnQH1MiA1 zi}~yK)hDoim*yfN>!IIt@cJ^!A)9Q!Zy~an_0ITlDSM@?;ep>TQEU{LY1m)*nh#&L ztV@I}Yx%SP=kaC88X$ZPSMhpn(Wzsktb4!w;I}=#j5K8ZiMA5)vL_z~2wAoF-+QUY zmmzDA@bv;h$h!NVIsaZHWldZ47dyzxvl*{s;cE?i*|G)+Sp!eLjZKqb%(9UJy5Bb+ z#Q}xFdjI?;^d(s~-rv@<-0%XcDT^}4jCfID{l16sm%iTm z-QU25veuo}ZwA0HrmUf$qeo=O8X{y}H{>dW)ih?jh6!KS<1Zzg^udNgX`8eE-%X|; zcf5uRUkC6P$tcV)Ve9Mr(nv*6V9H`v`h820%WS{CasGW3Qr4JT7q3#z6`1iF0h-^( z^&YlFG?xllQ)EQXVe-;D$eVQ{E_tmkD1_LzZ1OMhaOg z?l}2xwiJn`tjmS3$CQKl&yM)Jj92!e_gfTEff+9}-UuOAd+f4txsX+N|M;-Smr*vZ z5WZHx7yHedKKDN*Wlh=j)+H1(l5VCIU z{o`vrzKnP=EB(Gtl!N!0fAw!EtIxjL)gE6)evKBs%y@-`tkOTe$S$#A%={Vyx+Ck_ zH85Zko4eZlvKj;pQ8>{J^EC zAo;NC!!>h-2>r*DH9`2|>a(3+l-M+iE2VpVeHBtEDK#%eI`uLSd9?F_F{#uk0 z)0nc*@E~5?T5QK_qL6j@%b8`SA9pz{627?9LQ`zLie3gEo|x6?T|v@+Oj%cfia7_P zY!nGulfT*TMeRXY%y>-_zPQ>;(_!WJ;Fb>$+@Ir3d85ovh6{{g4Ox?fEZ?stOeY`5 zn6j=0+3zb+vPyUEyhO_C&~nEejt|<*cwHlWtuka?Eo5CaEwzzu9b?L3^@TB!k~Qbd zjKxycSDy8+a(vKc%9?^_%n=!~t`)LwD*u3$gJDcr*MaW$y|3Qhdv~uNs5JcJgC7}Q zU^Qj2f8zITMF{P3c%85fzM+}bmtjm&$ZFaC z#48?OhOAQIYZ-z^SryZ*7o@B&{rS|JJ-!TCR3h{b4Oyi^*5iNP@*R&aLsq%)WmiWh zUc7XZly&*{?%MA0WyoT|_WSlD0qis^7q*jvx7!5e+03sQ!dD*^uO(|cq3gypeEiJw zf25q-z6@D2g|Ep*yk-blyGPCW#N*3|SB3EPL*-!P*ZR(rvUU%;cb3POA?pU=Yl{)D z3L$IYa^K%Qz6@Dp==YrmUkIf2v!$!h@-trRdOmZq$Cn|iQuv}5JIQ7V+t|Biws?FQ zvStfkf5cx(nE1<2HcQ)s@6Ni^x8UpcP^Qu2(~XHUhInaef&xWdnuFZzJnlBR^`tM*?}>PDT@qIvmu0bz0n|K zjcTYm+wcObnO`>vU%Ujf8*CTcp7FMnmACWzzxVhu(vaN)^sy1Vihch>sH}wH~um<`zB8RinOgeD+#G- z8dKJn@WSuw0!?8q)7&a#J@|MBvN4RAUu-z!x&w<{UP;5{Qr7b6mwnyv0;?&j5zo?> zUFL5Svi3KhfqKU@rmWkAFK(?t0k#(W_J&KOtUq=yfXy_ftUK^R&WhM|)a^pnmee<6 zYb5?M@_D-^^prK@2S2&cF3zCSn6eh)+3)KQFSe`&!nXLO@9q(fU4MRLJR#X( zeyJ#DTR~9|=2%jhey_G|*IQ%2yR-wx;kZX_{L# z<=2WbL{o5_SeO(|!LB}GF4Yw5;}hm~P3fqb*uH{NTso(|6q|hL=tAuV2WW*EsVQeF z%K4hY%dMrM<`!fB7B*iQ6l`f9G8oVNI_W7uKR3A#83J1mlfq`snu;IYbP{fc!p1(S z_LVXWlo1^aHz}8bvcg3f0m?T`%HU*Bo^?^^hL=ujSt)cg4L?m8%mD2&-3()gtPHWm za7)Hw7^UOFaEFq@n6igOHzF3pD68IdGnjlH0cY)I2&F%Qm^u{lIRV<@Q0Ob{qL6d7 zNf}Bve?WPazVN_n*?DZ*;gd21)Rp*Y&O;dst`2F+a8h_#I{Q;1zeKz^lR=7z*I>FC zj#SkYk;~k>uPMVB!Yw8roOZyxg6U=m^Yk$ng|XP^qEOazE($qw9?_9SJ_$$-Qbd@C zGY9vW(uXpg*~)5PLsLM(*#v{a5KeSa$hp`>VF+irC=B7vCS^F?@KC)D&!v>!!=wx& zg>9h@&oG9kqYASuKP(CSHnQV}Imp)0p)kz+PO?K`n1{J23{RSi!Z7EW6pFHLF)2b% zUoq2p2vfDe4D(Rt#W8hc$phVR&-E$DuGhKXOqRp00?g` zLO28Hgy$KQF;blHoQ(8wC=AbaE(*iLw!m@2@VxJ$Fg#Zx4IMWO&k`4f;n{)kOawaN zxfFazal*6AMPYb$xhM=zIygJN7@h}Q6ozM?i^A~aD(O-dea(j()`BuT^u?W$nj-on zdqE{d`eL2%8>FE_VV&?3gwUZd%;zgU!WS7^lT3EDNlQ#b+Qin})vJe3pRX_p$b% z$@}E=4YBwXDn9h(=5rS)eqUEIf%)bm52JuaPv@^FKJ?}0(*%m&cL|xmob$te&uHT17N|-BuwEVJI;dxc@p)WU|2SD-r z&X8=Zy1l=d8jH_|iVuCc`EX?G)Q2aY`YNiH=<&KlRSfjy=JQR#$Ih>(ZpxV#i_dt) zhrZl=z9smaiN7=p3cKx$#ph1NhrZl=z72}s*NseIMtpbg?_%-Up!m?2o6jmx{64$> zIpg~77sukWL-C<6H=pkaK6btFWLnL%SbWao)B+5Bx%oT@ir;rBU&2hmrP*3(fiq^SmAj@@u4p_pVgrFeMl5xo_gmeuf*c>w&FuyZa&`w1^bpI z8|#{^L5O96|nxeZ`zY&Yihl&qLtipiA669lmXr-HirF__3pY6ZL8mZt z9($wN_9H3ozrRs@=*u1EAA;iW`Q+Arp*oCS#{Q)E(3j786HmqB%mE zFRrfPT`YBYD;yWAw>V5WySl1)j=dyV3~QD0QVGZQi()?Tpy=$9N^rLyga@smAtezY^lzt|>uLaJE*k%OB?bA^%YPK&slFg3-Qit@u-h- z7Z+5N&XO-PO6m}EKHG04#jRDm^FeBvON*@Hin@%9?7~9xUjr>}Bq&F!#Sv=eZNA)u}s-Kjoeo`DicCvV{ z3M`J$tUzl}3wWCmtV@>6DxY=}S2(Fc@)n-r(wXI@v&6EecrR_!lrmZ&G$G}s4Yd{Z z^Q6n-((3A273HC!R-fs(SE0BTjB2a;3`3JxoG)9SiMSUGwXkSAW3^JM^-C?z2o)!1 zjtPy<&B(~h$j=Ii%QsS!Q-|qGQ&NZVJ^*!VO6oA&v=FjVmB;kZ=&|WzGcxni9FJ&d zQitJ6mDFMK=9JW7;x3N5)M20 zwNF}__LCnPn;*_k9}~_CsmoPTQ^f5mE?41#P+of0=rQBc#>EPhEIhn=Me{ERrDvl( z&B`7f5_f|j=IVkKmw=2MBv(Q1xcu0$hNh{grw-F1hUaAF=OCrCL-HOL7vs!y1Rx_j zcU(b1tdQHqvCQC`8_LKZH#$8neJq0R)V^);u;Ae~tg~#OOk1NPccS0y{W{Jr~Ge{4Ia>k5K&q~Wq3q`p5#g!Zx z1)+k`8TsLH1^JG!)}_l9k5Z<^WMqZHS>bR_`k2wNyo!P;%H>SQYg#C8On%O|tZ=4N zFzriYM8afolDEp#KA9*h>h2nyUdb7G1$pUdSs5W0-@%#VGR9?R=VgLSWp;&iY$$6? z!I-r4v`isXTydk)hLwBjFnP<3%TqyUT)1FN{@C=1vUS0Bt3BTy`h}&D{v_ z!_`2k!&+VRgM`V(Z!9Yr9k9&YPDdJt z(IppBhYZ0^s~gUOw&!N&kIBpyl2cF>MHgR)AY-iSbV5Y;1ElGd^@uKpSm=V3RECC3 zACXLBKMx&TDhO7fzG8au^pd$l>ShnDo_52aV9L-TgOgK+4I4Hz=rSqE$-{>a4+c|` zQ-%*o=BufJoDK=rrWda%TGrG-AM-V@9pW@a2){>ZF-@SGYeO<$C3eDsED+bo2}1~3 z-O|;@77P@aVLnoWh*!^vinZPP{5( zLSb(=F+T_WrQGmDki(hTg=u-28TomI*?C3bASY%1h2Ka_|72Pnx|4s#WmAgka0l0v z84b95ab`osl+5azsw%5X%Ic;deWwo?Ixuu88)~N2*dEC%`3U~#t zmRrn-xfP|g)pgal3aa0Pi-PPw&aSwb_h7LDff7`U`^>NC-l6m++%|VeL9j|I>7$^w zdPZ%@>>!8Wb-{jfM-0DciX-!?in@l9%HYKM227!#TntQ}a#hBZ^z6JTrIiE2lfzc& z>@sV>=;}ig?TLMG!056=WH6^RWoYuinzCuZ0aa+GXH*9V|!h)jrJxxAEb<|aK^aeu?68V#aCyfXG|!bSd>07Ew>;iJCCAO z5iAZ*E}W1i=;7kDiN$F-1zBl$J+W{C>W{4a0t8%?)hk%(6l=2Wq$M9N6S zBQqy|Ois~N5Li%{uYv~s$`ozp}byHN(r_8x@U`pDQY#Dn=?$al7NVs{>Hl7^*xbjjS@l8UNAagX3Rc&!(;EcJTQ%!>MQ z=Y2=7_w>q=(pmC-4=b^I0^Td1Acm{zamz_0>WQE>ARG<2kX39|eIE}URLEH8b1yn7MZhn{5JqHF={8?Z5aN!A0(77&-ZO|VWqb>rJ}^M*b9 z*KyxU$vypni@#k>euq}~7>WA+d;jX9+B?4rG`ES;YCqenu=aC;=RKNpVeI#Z>c1lz zZ7weyuKza6NBj|`c9Wmb&hh8hf@s<;{o6VI3CDTn6VEMi;ure}U9@KC|fYJvT(~S;)up zS?XEHM+JHzpTUoH;t6;Tfq^NXePD)NESzp`nXa2O%-66#PZ2AYki17!%nE8+Rou}kAk`JC!i0~)!AJ5$G9X0-VKS;e7 z^6`ARdbZ<#k>V%vpXmdKI{t9a4H|a*DSsrM4?6xRZ>K4F5#x{d+-RfAKjoX{5Aymd zd5v@j_h%3hf9Ag^ud2KtiAA_wXU zQSut;4(^8%RsQptCTjWj9_{zFKk zC;u-{@){{0{Ji?#cogeDf-DTv^RV*&zo7pYB7`jeBL9*8Av66U->d(}di!sA^xxb5 zvtrQYA8y-H|5N{uwf3JKNgaQL|G(Y-Q&CL$eNjGj{TD(1Lr1axv;7Yt%ty2S_cQe$ z?PH^v{t@*5Sa1JZJo@i#{~M36{vT`Yf1^kLgDfBM_FwdW4t4y8q!Z?7*8d9;!sDs^ zZ&CUU5dB$i``==g|KqUzZ!zotc4+@w%>F0j_eDM(v+X|y_aVgLXx4vk`yVp%|9`Ok zkB|Rld9>@l`1oJ8fB%X3KhgNJor#bCIjj@?NHHaf^svj{e|!EvKK^&>|3%Cf^mFX_ zzxeoHrVo-tq)S`of0Ee#V@!QC>%X`CkB|S4T>c-6^Z)Vj|B=goR3X9~&H5i7|I2#b zUjK`a|BdpGvFm?({{Me%{NI8x^wF&U-u6E}{x{115t#ow*5?01=KLr0KZq7AKL0QG zKg8$%kNy3B@$tW`-|YF9`1l{`fqMQwG5^Q)|Hfmi{g03TkMH(BKK?&)`7cNRl3&F6 zZ`3=OA{6~AOcTcU|D(UzqV{u%`Byxj&vZd!)yQ5X!1)_?K+|5C5*^FNJ8 z@%~?AoiInU{vU7i|MBs^Y>(pOf20FC3IEaae{BEb>;KXFKkd-|x1jIL`q(c2{ZT{f z`5)v}eE+{pAA9^2WcnbnkX7;Xe@K)Tqyzh7A*Kf~*7^7N`TzL&|6}d^UyHf_8%iHv z|99%YLtX!ipZ|}a|BtW#Lx0fUia7s`{M{r~9KL!T^j{R!!UM?L;Ioc2F{{$G~2 zi1mMb{2zP$7wPlgp8t=p|I6|U)fe?*Tl60+go)b!fspw6zpP)`H1j^U`1-$5{*WH$ zFx1e4{nzjRgK{?_&yHsO@2AR>-T#a4|2Oonjs3r4 z@%ip26N+CP-tAj=2pA6Vn_|45V;q{G3^|HG*;N3;H4h!E=WA2K;)&c9$h6uNB{rZ^Z%SEH0z(fD4)9jgYxK||2yj2e{^h*X8rGH>OaETXr_Mz z{g2=OckuQ9vDp4Mdh|cY@)2+UMgQke>whGjFh{fgA8+k{{Qf`L9zmr=f8IO)-(uGP z=)e58+y54`{|WiWdi&3c<7n1@Z~Gq~|I7Rm<6rz~%lz-L*#5`I|3@zWRr7yT>;LiA z{>RtR7vM^69a=l_qs{eLZJ)7c-h%YS_TKhgtfVz2+i$Nxu8|Ksg{eE&z-~WR2`ET$4i;w@0oc_n#|D&({ zkB|Rl`L@SD-ueId`2Wc1zi9t)K=@c{|KscbM=t-5#rgmE`2Wb|zkU8c5o?+}|B{G5 zTu%GfAn1hAuz1M$C z`RKp${k3jyntNx?#o!*x8Z)^TTevh`uZ)5%^LO%DawrBpgtNx?% z<~gOd#J^4Te>>|xqApBZ;vaASW0xPOsH=RL{g(jGUwPhp`!A?sqWVv4tNuei_e-~D z{{v-cKwrBn${dvFRVW! z{g1c*$o=-s|90*FBma-<@jvRnq3xXi?W+HXe{vh+e@wUkh<^wXXwUk;UG*RF@86#J z5BYuCBEOC8zZidDz|o%h->&)}Z~syH+Bg5(RsY+&{fGYZe#FDpzc%WBBIJ*1i~M7~ z|Bv|hYh(OTgkt6&vdHz`oc~E|=lMUb|A#PuKkV{%1oFRK^&i5yue>esZ&Us=@@tmrSDNS{zv88c$~NY z{62MC%72^kALZ}jw#aW|{YU+`P$1h9|9JZ!JN=Gk{YUN#)1LW%T(|%2JpLE@k24?b zng8wD|403MB{ZNd@o!W8e-zCBw;%#-iGN$`|8~`XCXm^lxMRA3y)!&h39YkN>&;9Y6oy2L1aVnE&Sm8pmz> zkH#l{{=a?mKi>YgA^qFf{$uDP%yFy#?L7YH`I{Exz+tC<8}nbx|AWV2%Rd6+zjoDs zq(8qO)Ry=k)8l_6{_%eP|FZVXf24nVp8ps7e~#z%KPYc}{=aSY-!Z-Z*Us&KVmpuj zh5jGU>wjqfQ`)osKML0W8=(Vj>Hi$l`j7k{(4P4Z`F-0Wzped$$Zv_C|8GiMZ{dZLB|7f@WRGzW@ z{|U%ng8FZ4|G$)f0{MTi*MIsyGZSq8$i6-HpAgX~_o)4!gnx33``dZ`x8@%U#>W3q z<+D%ue~|b85j}Gqvi<+jZvUx&$5I0Oo&Slpe}sQtBHwf~Hb{}a$Z z3D$p||2qc>7|rq@?e_m&38w#`ZvWN(9m@89(tq}7mOtU2mPq&qp#INFB>aQD|4-!| zv;U8-{y(JKe;U8B{r?HbU!wYt{6Ez9|LX(XquKu()%s81WBdO{xBN%7|9^-TssQ0unHqpw|1*CE^gM|qE?{eRTQ z|LDK5`Tqp^pY(qY_V&O3P@ey%|C@&fOho@BRQ`m2QX=6eIR4T8zkbQ^p?dxog*UeT ze{{?LP#^yvGurhZ9dgLlfAnuoBKd!?xBnPl4(0v-n*X|BG|Qjx&rBrz1JM2#jP3tV zNdG0&{~NRaAKLbRY_Fqv{-65)1&8wYKhVDyCZc~2_V%Cj_oKi@v;Q}${eRLweKgCT z@J~%7`~%VcGxi_N@*matzp?Q@(l@&0KdSYg@*h?EKf*t@|33lwOHlu%k^hJK{{Q~5 z`TvC4zl6qrQhtf(-vs49K==iTgirr>Z2jM!^%q4HC13we>;J~~|BrI}Kg#2Ooqs?=+5holzr#P+`~T$s35n$Y|AF@ZP~ZQ5?r4@j{g2Vy|8Lg+9m?~6WA=Zfe{}W# zq1^tD_WFNQ{}1K)KidBp3Ce#$_TN!n{}Uwr-6UW%`+uWa|4IL}(JX($KP8dy6Yc*K ze*f71|AgfKV6Oj&p1BU$`cL7F>ij?T?>I_ezwX!~{U7c2e{BBW8P)oa z@MR^UfBp}&|2n{6zxD6IUjOO;%pA?~C;XEW2|vO1PxFrjW8?pXn+Dgb_$lZG=-<<=H8m*bX&^w=8l#n;ngj46J;uMlE)SB+}kz1xn*(J zvMF`qV{sX8rO{X9KjQl8;lP2N+3U6I1bT8NRj^?ItlV#HEO7b{oy<*DQ z+Kq?HyglqCZe4ogi!$(fNqGcR|>tXb#e@gw4zk()bv_UxRTb7sz& zWt|oUDw5vsZ2kG=4WG?VaxS$|CAS7kMv-jeu26R(@(N^nxoXNnPOCWb?tAc^S!)^f z1)>5cvnVq6<)XYV^4}80<%`H~(cYpL^=bHSU#MSZLplBx6hxMb=o%@%7%UJpDa9BCdGx(}>~Z5%SH5#}{r{6P~hC#bvH9@O&41 zTU=h%lAO$%MUiz#jFS=S$ye~j=0^Q;94bHgN4drLcQ^Da;W>N}2$y6zo_~mvGkX!d zP2w8fzijyKfahC_EuX|Mo`0+0+XPR3v*p9M5jTD}(du3U&$xEWr!O$a^Y3|7!1PsU zjj-j@NI715Yu@QNAMSFT7d~S7iiYv8pA1`dD_?y4l;yj482_3P)Z;(xIM;vC@=YGb zzh*M_(|0+}zrJGmq$%RXZzcJ1+r8xP*DRmvLA>BR3R@cj4pEZ=bPI|}FE_bre2j2FM>am;~lm&-exf49ST=EIKjIJYjM5jVYZ_z65e zdBm^{Ti@=(`7L<9_Ne6>&cE|xU?*u@+_~pZQ`ICG-AP%L2qp?{@em|B80**OqU%^sd8sF+Bg{@(ouWsvp7Ma6-uo*1zG>y8^y)cpmtz z)KdHS>|C2QT%kn8-;+4m>#P9v^{Ov8vH(dOrrY>-j zoWFAG8czOHKeCgOoGIfh-*DxTjvUN~XK{+5XCOIFKAaV`o-y+;L!82vz zAYVNH6u zHAg2o4r}n65a+0%vTbG{k{M!k=37&@IEZ=bDI}5(g!1FVg53z{r-|2Ys zDm>{Y?AgE1;#>>QpK~l9$%^aW3Ick^iAhe+$$R$iOE^CTPunSb_wSSNj8jCphD+}` zxRt@P&gBz#y!<;0hdy{7I>Y)mT>0jcz-{mxH{J3{@5b|Q3hBKXp3meC@|p6D8P6!3 zH(ef3bHy76NYDOb1bk=6hZ#0Z;~9^5{#^k5j1lmuzAhaBpX4+=0={YR^^Sl~>3DDi zd{f|iX#{+;;Y-fjd%jGC@0=0vy%WCX5%8S~-`WxIss7(J0zTE(AB}+TNcf%}0be$J zFO7gt{=G2*z6|(MXYM_pm5!rEz$f{8#|ZdjSv_S0eChDb8Udg5N#O|ij)t#n1boWp zD@MSl^mdGZPvLftfbS&uJ~;xueE2qufKTz;J_0_~kAIAS?`-&vlyM;9il?vCjuwr8 zPyW@9fKUGQjDSz=*(XNGcY7Q@Ol@bEgh~q=D(WlBi_Sf%tE;tn`ij=YCyj_)SvSA9 zwmycpx}v12urgE!IaE?!UszRATwPUPUeyrFQEXr5o=LM(9uF%RIduRu57)gwQX5WF;?Ez6)hdkw^J_2N?LMt^FBtvS+YWJ z)O55j>u6e;Q;J`mIj66gJNt}ec)k|jN=T2YMyf|lCTlp@$j^>lzCyYRU?6uB)#tuPH98t|8(^sxOd%y3r?lERA*Lmxp|w zxihdkPb;aYo>$Q@p8#uWs%z^ZR1r$V&-$_kvOqEN7%DDb5b>*~u=wJl^7^_6QgLy4 zeUumFrHwTeh4rP?wUv$3i@NFxCRf3kmH>RSzkhXp5vfXkom&;hPuYuP+h2YeyF4| z*LOcRuKNt%{k*vDdA|GkaouP7?ia*$&-dLgjO#wjcYjx0_u0OCL0tDazI$O@_qo1% zQC#kbttT&@u;OwVWTj?C5NhtQO}L#b&U;Gp}OM2nh{lifa^*UtfScI&REZbu4`p^Wr))eEiv6C zn(AKblP7v)TF}Zu-;2XNa(Vrr7a1OqVQ~sV}dtGJ>k2$nrce|an>HddmImu^Y)>Rr*nrp}+f#c&jN30l#>mIRuK<+DIy*KX{w>P(RBDZne&HL6} zf-pb|9H#`4y_iOnzAgoLj7v`%q?a~S6^qGeLA^6>&~1KUt#R^ROCEHRydf4fru_6; z%Ai}hdb4y4DVpk{i&%9#A?tjTn0YfBXO#HAv2xFB%qyXSr)RbLiEUijxp-w$=T)YH zKVi~PZxRryYN#~IK*S`+66w2F*UF0tSt5^f$(7Y54HY3%^dcv_WTVzg3yZA|mP?B3 zQc_-rVk#~(G9icYu0wHkG4->~QI!`x)up4#3kRtaTxvs=w2HLroA5IDt1ho9uP-X3 z38-WUT3%mP8!9Y8UbA3%3YH|NxVVx0FRn0Y5NVu9m3756g(%_*ByB?0X5(2+c}Znm zIemT89jc;-jkAhI&Ph&;b7+BSQhgs|yrc1n@{UnZMY+viy^?GqQRqcN`dZ`^k?ZP9 zh**Uq6|bOauA;musVyw6HyNo{#_N^Rno^XUc}tn2w`j+r-YT!EsjZ%ex~empL@cys zQ7js68?lhTsU|9yDUSv-iDoY9joQ%saxy}Nr*|fpRMjkq&hRvs>gJG_EZW8>zldIS zsc9C!f>(}H8loH+L?Ys$VidUPfz0z6l6(f!O$k+m=G!($vihv`fvVRyzr41-fr3=) zA&Iy%kG@r|K`rJOBdVm)b=PFZG6w+Zn zpVxybqJ48tcOw$;oxM~x7LwBWp-bI{#}6>*bIzx}s}c8`JJZSWvLM~(^L^BKUy-V) zE-Wz$K@pqi^A(oR@X~nsxunj4SPu7DyyOq2?`)SR!{;fhudivOp{!CO&n^@2LdtC}crWcwU-brlVl@{MduKgy?jBH{Kl z)N84$#!^woep<_W^bp>P(7eLp%dkLHqS)%{q?NtGdWX-9k)jyuN=Zp=Bl6)YR?}!G zVv~HnODijs(Y^q^(|7TrRv)UMr!y$AUgD1NIZHz!A}nS8Tl}VFF#SE#un~dEP-PLl z3a>gG>%Uec;ci4XHW=S4YwGJviz`oPI|e-|LBZ5h;fz00Vd9`E8RV!7)f>B|N#OsO zNYK7F)`V(}*jLdiDtx_%_K$kc8%|gSrp7?;CpmiG)duSQ=~Y^Y!B^*nszSA{Zj&Qz z!JuP#l~<`uLnR-_86RafsyDrYWqz;VnwF0Cj;^*emzklfzZVyNmwDgYXV!2m2; zTBw?6TGyB1U@4Uu>Da(c%kTq3Hg+`n!s#Oms z9Fna=J!Uo2PRVEb9>zk)u*(i7#h79li%}_sGDiA?5jl=`L&d1fNQ6FosFrGFLy?d4 zS>$6yHMK}Bo8C!{e8-fds1qy|O;W5%P&E%pLa#U2@Vr!}xsj=^G^v#A>gB^M*(-a~ zDvKV7rZ<`#(`ZqS!5GKV+QNCpSBd1;VPL6gWrZ?SuQhr(tHw*NEO?D@HTmehI4;VG zifz1Ah0=@3QLcWR)$++XCEB^Z#0&}LGCseu9JJ)U|Z1Zs{mowQ5D{lBRHL zdz+DqZyUGr<`pe<%e%su2HQ|&=~#{#c%9^$OsJID64Y6wnUr|Taa^QhVX?+=jp`*>#UhU6NDgB|_DAD#PKk7`V8q!# zD{VS*avdM(>a{AqYigvc*VGt|rgtYqx;7Lx)|6iws;Ki{PK$A-S;q_^QPazZMY>kk znZAzbfk?U{)JSwOcSujkJs9ck=7%>@t}{I`aivFc)l_S+U0r=~xgC&;Vd4-5Q!kBC zLdF{L93IIddyMCh5$RA~Ucx3%`$lG@Lup0fJk#zr)>pedMn4rn9lT}??J`dZ5CmTmbx_dnjV{B2~ln>dF9IpAuNQal5M@2Gd;8KodO`QO> z8>TZMZ;p=SLbY6qeah{Dm;${Q9@@8ZrYOqmE^aJspntADpy)JN&{a}(b=Xa+%F)ak z5Xg!?8#HMaJ;zk;`l5 z=Tn2yv#yK`eWn|{_X76Vh!oQC~Un$cfz_Lfb$4MJvq^_fVgy~{iJuL1f-2N;z-0yuO?J) z1_DeQG6t(sSeH8kf#vQ{8CVtNm8%pHMIAZHpMD^yxC`a6kG|FXWluLDencHK& zgT*K0NDV{qii#p4OI2cYsm_yYB$!$`~FymuYd0 zg{T4xQHgU3FUf0iE}qwJ_tlJ_{*2$Y;imVAAyqjq{Z@lrpZ4f7!}KMe$+h5+VJm>6_eM>8#50vty2GxzMiVH+`Ts5ofRu7N0RJX%g(H z%Zs4btuTC~A)3p}53f%#=vzaLOcAEo)SN0vuS;Q=th-nI9*ftj@Is65#S6;oRu~p^ zh_TtYIcJ(i1?6=uTz{BKA|$@YVI$&oDU7RanL{N*vsDHhdG-#s2V&T5NOs1+pV!f# zL7bB!IkB?ZV7)AVXQZoghd3!zTZwDUw26EPRTqI+;+u#g}kd(6gJ3f-lss)*P ze8q7>qm5chB;yE#r$M(6IU!BJo#M4hFMRM4#HoYel zxu-5pj%KK2T?y8WYWiv#?iPnI#aZ>M@TNpFtK)9gpUA8One#ACxyNiWLnov2?f z4^JJI)27BRp3{b9tPRQJ>ocA{EF*b{$;OzT6!aOxGFF5NnWyvg#+k$NN&U{NWmM?r z_S8sTHxrp&wC7sXR8hTvGW0|%HFUc%BUI3~i8#lp;*I%9#;PdRtBwuR}Ep1{w!bn+S- zS;5t~qJ2pdDbg16##LR5vHR?u;b?sLZ(?9~ifjB-*wNASK9qY}R&K1%tJ(>c#h`m} zRfcN9g;Z(AMOI>yu1WY;Q{1pXBN*{$@rg$88kjLOWmYjQE9@t(adp!w`rK)z7aOk+ zYxp0JiaY(Ev@9)JF407S33L^ix4NluMQdl6W;`wHdR|be&Y#y3u51Y}Z*OKyn3nY` zmu!Y)CJXA{x2lD~Us@K6Sj`)C;f~f-?kkdyHxx8!tf_0z1PnHM6|cm=gg!gpyxr@* zUDH9{xo<0$kR4m5L4IjLv5^}U@OxF>HkGA-i@tRQ>-(YmChWoc_0=1h53=6Y63MPJatX$gMxt6Z1j744mtsw_HFwZ*N1w%+!O(%Qbb zYpKy3G9omh{Yokt%VinJ&CSg-S$Qs21c@XEHBh1}O1s*Y(4S7ry3sACnrhk*<*ihQ zt2vJ6=jY^qWX%X^W)!>A{Fx?`qyWhztAEtnG$s79r84tXMHw3@mjo)ZYJg10s)gZ| zZcr+lv)v>YwYRTu#X>JN$}iS^n=15-%Tv6fwWTdw-nO*8qP6WRBbyR$TJ<^>5ty3) zl#PQVk2Z3?3DXmEQw>xlWyU7@5f*F{S>=pZU5qqJl`Iyor_mc5O>U_shTE4ebyfTm z);kSujYg8T`GcjgWY3UP+htWJR2lM_j$s@9}hhK49f^h_8=4mGt!AcJ#Tbneo!WEM20S37+z zdxs`F&0LYx{tdA?=}Nb$oV}hSJ11vkGM+nFRnN@WK-`JDn_HB3w%$prFLU}s$567!<^c_%b6@y)f_=TZv>b>~u z)dWdNd0S_=X~hb)f?DyOW>!;3qZ%6~%MsiKN{m$M5$c`XbCYDJWIagIv@2Ra`}(8L zfBxyGe>(A}n{KIboQn+ogUL;`kAD24rv#q7;0LFD{`WB7Vd%;4`N&_ct2uST;j3$2 zJM!x6JFS12Nq>6R)%TqHrRVZ~Sn%=6^|yYI9r&|&Co}0wpITabf65~|Oqw%nDNqgJU)@37%>Cjy*3m2ow z!=23|^k7eWYZiJ*UD>j7$*T7?c8<``IFafMcQmbNUDmcAK6I^INGU5-_T{eVeSKOB zu=jm^OGZ@gkrB7SwuMI+<2~nNm_gYA@n}%?7?&j=B;+W)fcB095h=>n#$`%4Yh9|U%hd4LFcN?Jg zlt$NxbG&RwJh&N1z3;o5z`TekxFV|kxh4*Yhv-M1?DKMTXc_v|B=G>FM8plz7m>j- z%=c35IIq+FP!}ZCsmQvHA^cy0j`J}6r=as!7YjI99I^0-p&jL70cQr-qlPxi#n^2F zMvs(t8(b{lycdkF7ql)H3pf`}w7brkJaw^vQ_pcDIsqZ*T`^WjOvVFJ?+DbSL62DwuhERN@SI2M8M2~0n+?i4;&qrlHfQ1YK8IK0Ku z4nknH2-9O2^5JKJC44NBVm^&!7*MfK6F&y5@H2YAjX?%(IXsVGmM;zdlXzy!;D^6c zcplA+WE%c548-Ttc%A`FBUWedoC-{H&H|<}vwIfL6rj>Koo9eWD$@vK7SB_d^ho1G(m6aYV*(=0xtyKAY0kSj4F4Rzl{L(4l`75WJ=krcKPlhn#4|9I)6!83w z)6MfXr=RET2*P2`r}^f3D!JVa{u!q~mEkDMC4!V%0ndp}_k?s}+s_m09iM2(b_#eN z<#h8r+Ue&>6*?@P(kkG29AEHGr?mQcauOe(v`TW`dh0Nr|9UH6ozKhFvZaH3O*JWg~vkjIHmC-OMaVQ8B&(dj}S zCpxQ<$BE9>$m2v(;f$Y1DhhbkBaahFbwAI`k;jRIUcj>%d7Mb9-)?zCXXc06wBQ-B zNv@1x1cI)oT4h~o zzdczLZsjb`$d#2$!)6|Ie1=?Jn4ZH-4~c-KL`yM9acQYQ-JA{NbIo&k6kA>5)ma5KhCxy1_L`bR5>0qZAtO87j z#icr{z@{1O<6tukwgF5>zoj}afSqSBJgk%k0Q!@4MNQ58WVVZ`!{QY!O>O)t(LwLU z?QNYcOS;0Xt6L&@=5@4pt(vK0k8pR)uYB)UL*MqE?G<(N7xabF`^wVSy{zmEAKurH z-go_WGN3o~@IZQBWqRMOoAj&U;V8btHitG4O=n<&i}W>QpVu&{6Z-ug-5`CTNi}_y z*_ZS+JY3rs+5nyjet+$9arK4LAP__tVXNILQqQI-jaR(8?|1Kcyog_q5p*gV9{Z%h z(9X`!4YmaAmj>$w`?bM726iS`wvmiC`89>xyS@NID}k%Mn#XHhbGqTxh~Yl&nNF!X z_Wq@J4&(kb_j@!MXs#r(o%xsMik7xz;pH^RM`X(50`7G82I%TOf+jzhMWH$;Gm2Q* z-rTjKg?>R$!w=_F!eUkvogU267^91O1%*rZA(*9TiqMox-yxVqhu^w4b%xhaH>TkeSXd3x_HcblKPd)5><;f%h}?!K~uOWdMP z;b+g98joHRL3aa+q-^e1(7Gfyo)@mP)InC=&ZZaSVQYQtlVCauGrnZpjcW;a3b(Fo zkVwf0Lz@vJ8G1)K`&sVxXvr`&vul-+3wc|>Ew7dF?uA@P2qYJt5U9*|zxCEzb13-E zRgPD}-QFueg{cyjo>iQ5)uz}It^*#$?*+gqz)OMBOP2wQfbRyX9xVi_7QF|kI&=lF z1Gosd9@qrD6}SYbv^4`2@p4~cgjtCZ7I5x&U4xD^f~6UWsgIPHzDrViUP;Qh;m`0$ zRy;A<9NL91&gRfgg<`~Ga?i_2;b}%RDx5Af%6;OHrnwL3^i}S9=H+1JeZ7^t`Wklj zJeJhkuyb=r(&`Kx))(5*)1TDKbM21QwMX}bcA{W*p>fhY^^!jD8zZY}eYY$^oX)$o zhUc~Eks@W{r=#8b8g_rEDEFqMzRI+|TSXu=9D8puj!K2R=-HTr|Ggg)POLW9)5WoTDezc6Bi(BvrQ7I3G+TOa zyC1W-&BVKCpJmr?&^WSuLuO=Je>#f`}v%l+yhOex*^7)>%nNG$>-h*ey@N9s*fw)ga>^@g^~zqRMNeo<$w2WO7lgPHvqH!MS3sKKYa zMI5@u4II;lzgwxzWW$bUwh}H$9oSX~7r~{iEscr#{nQjfPE*wPDdetinNWEzJZ@l; z2~}x=xN$3pf_-h^!~E>olGOE%xUm{|IWBo~=sA3Kl(_DHnP{iS&GlqjZK5vu+{au` zkIHr9!9JxuBG(yP-kkn~;@eyKbYJM{j0elmY}=Sw5TjRNof>+6$`^X6R(|w%Mn(Vm z0fbo+d)-BSp{>cGow4kA5%b30vqUxZ5$eLWUmyTu`DmpkfqYbc&iIGKRo%-M=w3cg zsij+ObpBgEM**opu1rrZLocQqJaejWLoZusx{SMfFIu>*f)3SKi6mSidn<|Uy=D2P z7q-D*2nA~L$lD`GqbGf4j zTNByO57E0~er7u3J=ZA}RWs(yC3ex2*|C(_Ln+$J@4pqQE}c=*ME?7fW)1{0#~{vV zW>Dvo32@G=SUz){;t;-BQSp+0(JU?POQQ)U5<`q0o+T`Y;?ed6{Z?sc1lhi12{~sC zVJGst)0o9H{*-G|E}|C9+V1`=VmV>q>ZaBeX4v^O)Z%Q0(RRTy^KDtrL+T=w@bcD9 z&O$PNZGoncTUMF3o^$;QRaY!A%bbH*KZA4!rM$Q`%uWx(r2%di5g^1uVyIJUE+!~@ zxduMPY^&>AZC9IXC)8;91-(s>tC}dGV3x+mN)4N4u9eXYcsOmYKi74IlTw$815Hb`m2r|S^o}r8nizEX92eXF9E&=ybQP< zD4XgZfp-A^1pG1(lR)>^fjfZr178Pz5BN9Wxzri@N8N`J)4v0!0RI8Z1@aNA?(>1W zffob+39JD!ht>TtQj(P9bbkZLhoZXw4on9A3&_a3JDGHh2UY=7fptK7cxFU@E;Zba z=!Mx4y|94uQDP;H7Ib6*6c%v4048l1biU+b0b~1>?g%>Hf+j5BJPIb=5p*7Nv4HHS zMn46aS+!Wec?C>bDd_y(#R6s(al4_B7ml!iV(naIXaN@sIDERu=&_)4qKmQ018gaG z(9wrXgaw=sPwC2_v9Af^>Ff=`N2b}luY%{dAE*5aqxJe%eon{vc zm=(Y_|9%9`=HD+}Ea?2&r|s}*JAE1!k#*Z|!ove>6uEVh`tTT5_RA<@Z6W_;X+W$k z1Ru*Vme6mb=P?4KNb1pMcz7@xMJ}eC|Lu(;NkeQoA4kIxZ6tPoY&nd{dPDtjEiy)& zN_s0d^@TR|(IbDduVIrJNp9*{+wWwo{|g-%%mnFi%>*aXYdXlyG&irIN$LB9o-)>0 zjSe4+_`p|z9s8i^`!GX!HutwBLd1Vp^B&{3)gp!4zPYFAqz*U^;(khWhEDJ^G<=?$ zq2U9Yp(inMXfkx$7p<7a@BK}-^NR=TB;DJct52h7JTZ+w>-J+f#_D~<>?fFb41I}aK4nP%X$zeWsycE_Dsl zuK0^eU=MTcdn*TH^egMFeAvv}vSg^Fx2DYC5BHXp7-R%<_4jQXo2&QM+$6AiVvi+x zz^2vhT>anwAjvsko<`2qqkaC@u5<9&&g@?ZHkmt>y=`nEL6K!Uo#;V3v;PcO2Q*dy z(6U;-0x&ycKMqs2_A{qCi@>fn*pI+0-%r6T-*Jpk5o`|r zWwTt&a>7hj z^0CQaYYZ(1>;ndy0@iJ?)4^^q*jZp7G*~X!jRwmHyUAd4!9HZL^L?zq$4Y#x%*QIg zdd(Z^y1mIgh1xBMfCG(T`jMG4mX4xrw3-Sz_L9w;*w*z&9acZ=B5~KmmJIOdZNV)eq6L{B|kTET?vapq7%ttki3!+u1J|XV`M8* zq6=hXD^l3T7`qK8p%p1wvGF8!+c2`acm`Scb}vv-1U3-?v&3ZafnBen-5>pK;#xad z=CrR1SR!|oXhX-HOsaEfjnBhwoVBwp)vRoJpLO(Cx)h^Nb!p|x;7XU%(M;YYeR2;! zPU4>I(lgu@BALK5p&tpH3p@%~4?G&U5I6~_6(a8h-U&Pg_!Z!>z;6KYulo@ot2DYV zV5D~v@Mhr2z)u3F0KW!26L>#xD)0&5S-_tH+3nN45#4w;a0w~P1zrc70aP}y(xdxP z;7s6;fcd~*0y!nF`*%RvyzbY4v^U+;$O%?wbe93o1AYv6KJYf+1;Eb&F9dD{z6_$V=+8tq>>%voQC+E7jSitE4 zQ_C7OJi-FbCwOWiH0a#!VgcvtVB!rr-*&Np^90z34ecox3pl?4yWY@Va_EZ~%Y-C}5EF2-shu=g9<?`Vgctmu+@fky^E1vF!gUpuZsm7S&Y^i+E-nSvuMDsHMECaEZ{r^_8*4! z6Bi3O|3$A=eW;-Ga~I>B9eN5@CL3HV;I#R)4xe_NPrKfy-R9Ho@M&g6(s}~f`-&v3 zFJjxtll!(`>qm5fHL}>hrAg*Z2BhwOt!a1`yGF_G*ZM!a5an8we%~kbGz(D-@`#>h zA&QW(g(!R3btmJ9ziIA-gtiaetPJ;xgM}!A#bFkr#3_!kg(!#kZlVcj^f3$P0kLpu zA<7=@Vo&yLNeQ1WGxQdwuC`Bo(yU{CzKRKVarJYtwsbm%=+>o^GIb zvVZ$;ig?jl>E?kkFk$R6pXV9)m~B>(TZ`9|{JxJn)ybpASU&aEtR?I3VAdYCfZmXL zkEzZ^Fw6HtFw3V?DJ<=sVCR@Hmix4oV2lpn_!f3O%l817rOjpR@eSj%*57~EUWBaYLPc1){ZgboLEZkP|BQ09!wjG z)rdCRFDlI8OdAK(lJWMNE_6;#oV_(I5@mB8(7iP>W_XqwJhn&fL~OQ+ zv{jr+@V~?e&Lvxg>?>jLHe;)ZWV`^XcE53n(KD7)fZf1Xf&T>V2L21E^u7hmR#H-(?z4bNz;l7) zfW^QRU^Q?&@ZCU;dhEUuI02~RCJqCB2p9nV0vH7T8ki1z2{;jWCi!qU@N8fPP}Ter z^26@?5oWC!!UE36aFr$vI-hc}fb&H#Y2l#rWfx=A4kkUusNKZ^#)ct17IYqmCM;lV z7}AwNoo{KhX294mq#=XaKV@`fz-T?SCqeCfa)faNA$rizR`L`UaCEMXDo@bS>IPu}=UFhD zSHE(xfV11DIp|=Ue>(Nw@*U^X&hTm4Pipx}d|H`LGpC~rIV~#kER>U%6Pe-8LYdjW zP4aK|?qq?Pp>j&k%j3G(NIiJ&lOgM4u)pmh5zMD#TU=)w3!6 zhW@Szc>RQB-CR(C&&~ilfEmGyoAUu`SY0C2KPo8Ged!kaQeRnp&o*}Mvv0fJ1Xu5L z9SeeIFxYrr>T~Gy68uhcV*=_QZbfkxe zY!lU%%*B#-bGgliJlKuqjyYZ{jd*&O;(QN3WSidY5;Hh7Na@G|G6(1!2|O8i6!2ZZ zqk*NsNx&K)U9;|Y1CIeN10D-p4V(=80Pr~Ar-8=erq#mVxS>Tk~#j6CIQCk#}POzPN9 zQzg8L$xAs90V&{RUj2I~Z4 zVqQ%>PwOgM|1{&;z|&%?(y@v}tyTqe37W3h6Bsu@n-!x-^o}Z^TE;8mDUul_we44% zQGmQI;FkAZ5TL`HwI>c&n?#Vc|49X>Brr>6mKaL zDUJJG;&+m*GPxfp`h!5(!M_Vs|LuFgGT`@tmjE9IUIu&wD5df!umku5;Elk3pxP!z zi`};Y9|KCcuujhG*WLt_a(M!%I53tpN@6pR86)Q@xdVR;RQ^537vT9H%yYw9-Hi|xw zyRUDsPPaF-dw@e(w)XTVU-e{a#zVI%-gMdq2}(dzFOD?pt&{eg$nEfuDl)!f{5JK3 z_L5#i!kkdM+Z^JvRnefwh*XmI@g0~dO0K+HCs6JsCpii4ZX#e#uQc-Cv-WN$GQ3Rh zAXCD-Gcvp=2NT|%_He;Hm7M4EPEr!-fuE8g4pb47lAYVWhenHR5zZspwnb0}#$q}X z!L|dx@@dlfmevMl`92CZ3650f(>|trxR5*B`2|n)-cp_4f!Q|Xk6^Z4`KM2lec969 z0cQD50JHC&?b9v-JI46;ZXas_v!PuL#?k;n`+$%2`mWD_+1S4ZW@BH-SjN({443la9xx`eyceBUXqS{fuL6~Z-vKWM{vP;2;A=p& zOanj#wjDST_($Mzz&`;s2mNQD+PfXV=YX#Rw*&tIOriAO0Hy+W0*?p237if58}NMK zF5rd0zXMkQ{{id(?goZ|{{-Fw{1;HGLL55Pp93ZV?*fhk{u7uCTuC}pfV9QVcpz=B zlM0j!qybg98m8HHSeR{xh1r!4mNu2&mZlM{rPcT}(>9lxDewby$Ty1RVO0MH+Lg>b z9O6BB4~KX!B5D6c6jM3U$1|44t4ix|E#vm8(wi|=NnM>-ld;~Bs9eLnFs3T43AeO$ zauT}fEXv~o?lkV`igW-D>>ga8l#BP?rMOA7DPd=dOZy{MuPk;&^u`$`B-mA?XVK#e& z1&j}tb|3tfX0m69MQW4=f00ErhbRs|T)G|C5^k@sV(l(h4I za@P@1L%ZI{xNN-MF|LM^ake3>M)>ZROiB2(T2z7dRo>rQcB%0^!iJm;VRONy@&+;6 zTqr@Z(HU$Tk!8;vh!)wX(^1^n#bV<=v4(&(joERT6AzWS}G z-eD*-BIB%#vM|@kD3c;aMxO&pMmZ$c$mnl?=kxmopfdiqK!yJza0PH1Q1yX?a!{b7~-K2p4gar;1$0Lq(Z;k6lXGHZ7Cv zN#v2%zSx9hx~$nlSqZjh&FM}Uo28~y?6jrHr_CsY%X>4Pu_mp$#+`3{L%V(g)?sU^Ts_~}*J7Tp|Yg@Ra zwZmvA`CGs(zdip!=@Q)HszFeDNXnA<3w(6J<8K`;FZpw0M+UHIZz=z3!Dvn z4p;>I1+WhIOW+m2UjbzTcplgV{59}{z~2CG1-=0MI`Fr^4Zs(H&jDWoz69I?R3rEb z@JQnLd!X8xKLE9tU@P!4;A_Aufdjx5z&`@Dci~UK4*+)nZvnmm{5J5fz)irv0bc+3rVdZE&_@C?h)T_B3v~$X@G6*2p3_Z+)mC`gox3usg;?}z7lNM z$>*AAW~PQRnegda`u0Rfxm3B+JNkVWhrzoFaw&1MBk+x2M{=j?7~?&R%HN}cfy1k) zv5MfkxW#@fOz)_I%m+5dD1xpqCrMiaio7l0me-#5pmFqoW-P^_T4T(&GFnlY?I+^w z$CkWG?(!IuuXo;bvpyQ=>57OY5%};IZZqHj>QdZQ;Z?4Rpf1eprotl*roz7msFD2@ zz|(+8hgo&77+A^sOMoWrKt)@Id0SD0*@_~J#YnDe(0q8w(oFAG6O2ak3XnYSb4xK5 z!0l{gtZ&7y&7oJN$4$w* z7AwKuwz@?|k+I~r`FfGb!XaO9yHgw*?%oL`!aMW@H|Dc;@OdHg1-I?2O^;At+l~6# zF{r*+xQ_aQ>upqD+xr@JM5?dtQCZ9+`Z$Z=DB#ZF-m`Ao ztKL$tM-xd>Y~fW+9V?A$^QNcbeV9(#(VMSwKSdX5Sdh9Po|8Xp7x4){259PwiBad!~-L!ioKGf=r+ z0FPC?!mQ#I7H|&dX=z8eSitNZur%4xEuT@w%~l!r^q<~~##ASv0I@Q?5g*@y&@wVQ ztLN`Y;ggpWwl^SyLz89x@RC)Tcko-@_@AL=?d0G}PgC!u+jaUSgQuY`jOoz6+85JX z#&8y7Yi}9ae3u#5CUqTUM`yV`yHaHNHHIK*qdQ0z+UO3`ecG|Ppg_@N@y3?U!_6{; z6EG>mcQ{?A69aEFnbw!3Wf0LBmr2GgAqFFhg(-n6Q~E-8L@wN*hqj}) zs6bz~TT|ee6|$O)9hsN-wQ1s^>sdWvya^acB0|? z0oY#*-zG2{7p?BLVZ_tzyK!wMW^&UNV#ph*+t0$c*y$v_BYpNJa7naouWJc+t*Q$* zh3&^h<#Pe|6z)CicTdGieYf!`mQGrx^sIY*-`xefN4h#&nz*C=>c#I1W9Rj{tXDBW z4L6&g8ppb$UGK9i@|jmwwXSJd(doPckGy_wTT4rGXKl+;eL~xeg4JrM|JxihSe}O$ zpCZv*YLE1#7_qgOFZ0@un5v`PO`ds|@=EQ&H14oV|8M3im4CkhDuIk9O?&VnP&+qX z0jfRtA7CvI9d1_qAv0$A@BmQlz;>YQF@FTE10p|WUO6Rr*UcrfXTqQ!0|whjIsE1_W=(BeiRr4%0`j_B(4slUDLi~0Z%5K z*n7Iq1|A8V1*DpGmjkitbk_kV0j~tU6R7n!Sa!PC1CIsX3dE|@t?Xqrk69VPD7src zlhc8Z0?z>c8aNgBB5)dT3lQr=H|BFE7buyW0hF{|KpbtmCd{^L!UE2NxTq+N4w}UE8t!-d71A8d)X>(lW>w3Q za7**sWK>u6%H{Sh#ZA?V-i#w9qw4``pyEp*86R1$i6Rt=&+@dspYXNXGgf@*2xu)@_>ty|;2h&)N+qXWaOds0|x39=smJ zagQzF9gSkchl8XDIdR(;#23mm=g?+irRlpw3l(+zL}1(J;<>pI>MK0Icig}S;=MY# zH!y$|WvHK%aHt&Wu(Yo%b16A(T*-U6lE!J4 z@?+#&s#6d4af3+_eZpYsW`5FO>TG_>U?n_nGng8#H@Usi2Q{BKDg$~=PVC(I8@R>J zVXCT2Y6RaKE#>p)wS-GsTUP8%$oG8Y*x^x!Va=rli98%@PR#GwriDo(Lf)s~)#4~Y zYRAG&%S_GS=@TNPb9H*hwjVoML|5XeNTc3Fz_O~(4?><>?Wuv`HBF=d;`5%qRA zi}3o2Sgev_s^&J;nh0k;T35^{CMA^avYii1W^6R52Ymk~Z|gB3`Ll-c zxds-+dwJ3T-Em*H$j_xja%pd2=0I+YgNb~09F;T0s+rGj8QwG(RuegL;vwWD`b-L?Q%#i$)R(}QY9 z9v5)Sb1wkUIA-9zC<@P#aw%G2X=_}?v5d&*@)d_Q0B^Na^HjW5{g2^R_15)%s;ts- zEl{fCdf+YyEF3cDg4Gq9Y1BifM<&-1J2GL`!3EiW)Bn}C@N!5 z^p0m=>uu1P`!DK9s;MfM(9`7jsWRuOo?Nj$PL(O+_ zOor;aI3`2KzKeq*?fo~;RhCQq-~TR-#PRK__haA1L83&P-;8}1XYiv$`tZ-# zcX86}jFaj9_iV}>`!3E4d-=eN-T19fOjSmIH;GkOk)OO8VE#@$>Ff9o;8wn!5zEe2 z?wB|B{&5-gv>xF+m~DLw^2ff5<7V*jwx7THXrQUk6yXbf4ZHNAt6c-Xwp?qM$%?R+ zDPUP$7+}3HHT3+(UE_2<0Eh1!45jXU7e`+&50Brb70(DG#*!CUi~Ky|Cc_Cklg@wZ z=hWnpqzOATL&AOy2F;cx?-M!w`|ydJzSs4Mob7z>Ph(*gPn{Rq(vf8jm>f57Eo+1( zLLRsZ2R>}t*YGnP^T4$Ivs;2X4`2rq>8vVbf?Wq!_G9hYF3;AU=X%84z4hSCk$a$g zx{}U_eB3(G9)7t|i1|X;99m5H4B|^`sN$dFT$|k3-2--~!R`aodh=B0TVP)_*!^I48EgaC zmkg#4H(RXV$2R%clRow|*xlw0_3LCxpTg~3Kf_g(3t+C;lQfqzLl(P6OYg|eB^Zvf zJ?2O36_l?9+$G%6hR2xsj_7kU^JWeCI?1eAL@#pEBQH0PX;`09R9G@EKa#*^9SHmL zwUik{&*+>nI$ukP$O*odk~b?dC+x>kWV%hG7-FY{a#C3E+qKk8 z8A$-b-0e%2P+Y;RZ15Ag?J^0ii;!!RJ6qmkqytOee1D*-J z6*w1o6|f$-0=N*^29)i*9e5{j74R#-_X58G>;OIj>;!5SIt=_3@EYLzi0Au(9{^qp zTn}6e{5^55BL!9!@!>dZw4Mm`aS|I z0saTD9C!=xiw*x;4l=i41{nn-~%-Yn21)N)ORhtpic431Bv@zJ|yrA=W7qioO z(xG-bPnbQOQ~KAQ&MC~E&iOS%`vva`3plTUebvx3&mfHNY=BAs2F((GVF4$N=e>re zc?V$u^Mw&<@t|`YPhkPGeOo#{XjW_q3z(H7Y5{^~3#YJvQ_WK=G=q-jC4>bWO|qz+ z3_4f2SipS8<12>N!&8|3uE=K%O}Qh?eplqnhNhh%pNOZ zX%D-6?ruBjt}Dkchp3^Px0qOG2=8qr`(t=~<)W>6vu6{lj~Ngapl9)=XM+%DuRe6+ zgT{~Ul6tc~j2(NIr1dh0XGF@Pjyv(Fwpp@t<-O5wk8r6n9N@fjCXZEZ340T>RXL;Ht6y5zH<;@qg@&{NeZ! zfNk%~yzzZ=cS__t>5)IQ9n%ko)u)3$aw31QzI4##tjHhv?vKd2Ch0kjJJpfgoki@k zO$U26ys6Hq(9SiOq)-c*vYk?}6AiWm>_X$J+&Z5-)lp5ed}<7|oG8^CrmM9Csm^w2 z6$U$nrU(g`>D<|-H=$8?swuGhHvo?X-U^%yyaRY5@N2-6fE$1( z12+Sw0G|V%0{kD~slXk;(}4c~o&g+3oX!Mh1E&I~0M7!dgr@-|LwUdjz?r~iU_S7@ zz*)fSfU|*pz&XI%fOCQB1)l@_PvE)09{|q-J`Fq{_}{<_fWHS`2z&$hE}*J!Ay8#k z1XQt9;%1v=VOG-$3+T8XQwM@N;KyLLskVGSbKiBfuMRScP%J6zu&KH-$tax&vb6Eu zx{;I3Ytd?IU_$glR`p{P4K`tb<#DGvYF=!0p8-}x5>w3vu~LJDpxJ7?5X@FjN#>i} zQ@FjW6QqDU%_YPhwkA=TdQ+@hgORMm~`vfbG6V0IB}>a z*tukR%gPqYuNwdV0$~xicPV^T1I3}j?+NEQk2d;kLsKD`sjzE;7P(E?AYp%E7Fdy+<@MD%H8t$JCZs+Ilc`YEzwC zee82SCVitm4jLb9cwzl1t_9rtBCL8xg7GA`Z`yN)2y4F4;RP`1)|G&;-e!F;PlYdG z&E)>Dpl7yMXTl{2t)P0UrbWEFgAU$0?*g0Q@@O4*^;J9|5vh9I=%Sq)!PseM-m`j`0;v zmLYlc-6>O))H7#o;U~g&wfJ&=sauFNPene8#RiD-aV%55Fnp8C#zusC@hicPE?1FV z09-?kBHIWY+hIL^MUyBp^ZF()X!xUhlcF&}k!=L8TkvBZOhtA;v677ifK+4$0&=`R z2(T9LU_dY6;eZ{0M*^+|JPMHI@BlJ@RaP6*r`ni4)y4|PHdeT|+{SbMe`w=;gVjcq z(QM=0?1bW+{U2?-_Mh4RH|kUf=+ABAO0*I4bQ~bt_-%k}<3)gM)WN z##Ml9<7z;*akbUP^r<$cPqneav5gf@+E|&WfT5K#{U#YpsdCQmu#Sq9Z+{SX%$DmH z&M)JZy)t>hiPN%WxZYy!c6=gjhyf^NI)CSkQoauj;=_PfVaR+djx`gWgH_-B#k7TR z1CC)}6Zr{r{<590rBH^myf91u>h=p>#rc81AghQBTjA~?UZY|axeG?#VF^ZCy?A3q z@YT7OT?r~VKU;qf`}X3<8+Y#keDWE*0G|7$ienzfs`B!3JjhGg-DX@I;pP2<$la?* zK)s|zn)^$duRQpoYx}OEbIxQL@yfMGhtuxYDyhNM z5nfoB$06{q&%ml5*@QXInf6CX51~b7C~gqQ64SC;Ht@k`n0Fg3Eku$ris23-C#dXK zrLv_hMvqqsK5j_eqVAr=`E*q8eAKVb3!`2>zvSgAlN220ercSUhuNAZcm3t@Nn+Rq z2BJcl*(Es1WZBO7MUaTS3ekhlq6iSg8+PzzJk4?_A$oO6LUg$)L{++g$gpI$V$Q!% ze)b>5pZwubK{3sjwmi(wkOMc8yEkEkflpm8;%a2K`<%e(n3(Jpz&S{sQ zIl1z)bQ1Z|(vwSXmz0iOZVJn;m%9G8XOC$d>1s;gn{j-9k-!i4VY<{-ak25V8>VUn z_kL(D&WDR>`O8=@xSzqdPJGY6$5m{x@oV_ji0?)Cc)kO>B=Dug2diDOD^hH{0bi%! zcEQK}kz(5Dk~`juF*Su@BEijo?+o#kz_&qsSj!uyt5D?VPxw{Z3S5rRjd(T(w_JND z+(OD-!Z8j_>PDFJsMO6->ZbdGlF&D8s2T|LQi*UTjMzXbzm;6NJ=Cn39r?t5`t*x>SNXmN+ zy#2P!U!jquDy;8jnXc}ceW)$qQ*Z(j(T|*Mcx9v=88_W%qRfOlmD=y8}?(ZBqi#BRw6!wQ zXD}z@_Xebp?(8BpgE<%QAUvN3cs$@c0ILAc2W$nr0FZm<*x8YnDenZ_iRW=Zj(ZmY z-UxUx;C}<+J)@k(x&-h+JYNd30)hXEf0{2Cy;dL8OYtrY1~GfetQ z<<3fK$~p2@oW4@IvyvKh4ozZB}Iyl_9S?%mm(NI~Kj(OlSyoCWNm`9-WN-*hDf=Qn` zbIrO@XRhf}cGnf%qdKmwV%3dWw2o`L=Mv@)PTg6a*uy;GE!n|(w!!nIWHjG+8+=E? zm%j<>5$eUytjXLa_!7dZbDDs0Sk$HXtu-SWMd@>TbiMZ#SfjGW=V1Wg66vdmoKB7o zXFB@@$NGAKxR$|Tn4K0J`BxJcX8UIFRht@%czi$Y8{Qo59T|l%tf)8^gmlk?IJ+HN zrI7NU`KGfs+l4OGY_RDz&hm@{G8;#s##FP>r<#qvQn5LzaKF-Y>I|#G?Y3~TicQJx zJ6Ex?lEGS5Eg?&`U$EP_aD?ktE+lu2Zo#h8+%I8uxa-MZUGyui8@2h1>?(8D3ViWC zM=u+(W_<&n+pY@kzOYzUe0bt#@7s5kT!7W>8!sJz%pzbhzl6scszh#~FQM_RH^3YV z)!p9n-$6VUkta#wC6|7aHmi{h{9QyM@O$aofZ!*~YkX+Gd;3czVldKV_!Y#!+8X>k z=O4?p8s2&yArU;xA|rSt!mDDZPMeNgIe znHhG_HR>u0^G736YGq_F7tlCE!k;oPwzl?m0W_z=_{Ff@#B2Q zWNsMjFq~eo!+4ONO=>Hc7sSgy{P2@2n^EuN*lknzzZnyq`QS6&?0%m^EIDpr& z*&C*~Y5NKM;Fu<-czO;Oyxt^wpgzZQ@agVO=K0XG1S0-gbgsh*Jrq)coCWQ#V#uhb5G zO6}06zPnMlU7D^`jGQT)2Q-TA->h~HLq_(dcHW6@OSR)w-S?uuQr+cIJ$xfkND17H z_)gWcXX>iwWJlursDAGIC#WB;Mv9Gx@n8A8s5#{uvwZo~4`%B7tbQ1W>gS_?y-xL0 z{r{8tc_;F?uj+?o%T+(!=uRwe29U+w0!a1K2T1kP4@mVh0Js)#5RmF;2$1UMY(T1? zVL+;%5kRV+Q9!DnF+i%Ha{#Xc+zLqbvkj2>zW|Wx2P>lSF9W_4kkUL3_$=T>fWHO2 z81NOq?SQWXUIJ*KJeLB_1H257J?dS6oXuShcnsi`fP9Dhl_5of8h!wAKJ>Z7`KL|*fzzR*&j~{-ee&|!`hd!l#6prdg;SNWL!cqMw zoTwk(k$0t-B*%a(CM}&e!DB|Ex9*`T^oY#np=Ql*B4!0b+wd#Fk1p3T)yIKbk~2+Z z911}VegoN;W_pq;Q&h6_;zzbrzshmM-IpnEd%$FN0!9K$HQ9K%>9j$zC+D_=DleX7yuQ_E6?dr{Nr)x-w% zQHbNSxHgCV?~5)d^Oj-~dIguscQbouJ-XQ)QMO@Ugt;S^*qeqAFB$M!VcOobHtN68 zMe{Ikpu%V+hJuAREOYN~n}JmujZ&1obR$lgZb$Xbz2a2VEtUWe?ke8?Koj1nNd4lC z%&)Ebg>SlkFK3|ccqG4cwb{ZazlPvPzzTizKG3d z82wsEF*h&g8-IZB0Q~S(7oHXF4a>)^A{BZmd@2+(a_z&QqeH)E;qpyz>VV|8V5UO8 zewK56bpq4NSzj>@b>XB(Jkh|;K#8I!V&o*K(6a90c4KQuH(&smjQMFz8i2D z>EqD+IJXh8>t84c_W!_4;$OF zXkc*EGcq(o57~Pp*%yK-7K`>S#)gQnCE0q)wW~%wjEyz4tNFW z2|x%|8lJAcOeazw&U9sZQ33F5&J1LRVbZ(X@G$jZ1mVGx86F-S9w9T$OR=H^k{zXD zWTgiwF#$jJuQOd^qhRUDM-j;kZ${Q2yZ!xx10MO(Ti8&TyOxZ=%5ZN_Zq zz1^PmGm7?Lv%qb5dorD)ORK8*+Du`VcC&iV$v{~c=-@EQJwWeX+|usMrm@YHNs>Vg zA=c0-YKX{2%&fflNarzyc=)<`x z6PR`9I#Sa~Eb%SIf9l072Jamp`U=C6;Dr=^eC0a}&MRKDF!owSmQbslbJJB`QiXSVs^kje{LlSfI>vGtc0OG0xLxKX!SlW|@J;6A zeE5oujVEGHk%kle0= z7znriu%AZ?@ws2~VJubp-vjeuuvIN+uQ3X(+qFO0!VO>Zz+cQb3gi6$KbkXRDb6rm zZ##oewO z@t2+0){d3G^XiQ6lMJg#!N{{_iJpb7)J8lW(`{ax^XHk1Z$lqUONDIQpA)j{(@6 zJuR*p+^(mfOy8y{=1E$oMo#^vEegE$I^+!2?TR0Qy%PA|yZZGtDy_;tS9~icmQByI zDc!CIP!#G+y7`jUz~aB&sh-XM_O$pu$nENe+;9Q0tMZmdRa&(JXM{|81?}ZxUqdW3 z@$s7IKuN1}_Y3GDc4trPU<9~b{irr1XS{phYmF+c)8G647JD3PB$Dw9)qq&LZS8fi zr1koW)(dlD+1iUQirucebXq%pbuNm>_WI)8cfXz!%T|YnNvyj;Xv*QC;`{pI#q16? zXD=6PPPOt8@O^(z{V^)7BRW3&uq_I__Btf3+qD6rYs%r_lGf_a-LfnvmaSZrKDX;4 z{Ad3<`h5o+rP6x()H)7LHfK)@M2J;pE7y^d*4y7(`$=0Ac=b;ye4RPn~9q0GtDt0}av!`_|@NU;hwzMiG zt(#|@dA%(Py!Nz?lUT3tKYqVB zQQ)Fb#p#{SxzjQ9G)PtaMg;KF*$Vi z{3}(tzVL@vsPt^kUarN!L(e1DY)x^3q*ZcSGp(f(>o6o#4BsE$lj>4wy?+0_&*sFk)ge2q z+x05aGTUpZr1kun5BhUr+3K)LV(mt4a7>zWY{@%STFX|fJ1HlYEv;&a^@^d5vwT^%Co6h{f8VtCO@oQ+9NldN%*t%LUdb*9(Y+KjYf5Km9@Z9+~^Dznk<5 z+GS(8#Cir%%=T(fb=dak?K!b*<-%}}jn6-t9WyR<4y2f7K;x zdTmkQwbvnq&F#8}|M5G%^{?nUtj#N{?}wDxojt9S5#ZDtCrMgA_`-7qWaAWxRR+Es zHQ)Qeo1-eNhu55a0}wW6Ppb)d%=8e;Y_C%!ts9SgJ!p#puf1Gei8X@%j5T(}U9YON zmVEp$vnhb5v!~_5v)koC1(;)sSA4Nmr(Q0^)<1h%%@XS|{NEqHRi8Xn_vLT>UAkysn?pJ`o@`P@HLTCw*8z66BL+0$wT-kDa5#J}N_u^qN3@Y>U2 zH-|(aAUSJJgfTKC+&DR+dm^{>^SbGtaV zVG4iy&7UEd6!zeUS6v5SbM~}2vv#}Kpr#zImb9vVbyu!tv!xZ5Sk!M!;ajnvp}pw) z$T#L(17LIZv@pmatwqS5nO0cRdZzUU-?v49*ItL{PKd>CmpBKw{znW=9C9QKlapSLYV%f?SmstEzfoZjT>X&D$w5}-r^iOkQ+0r^yV%gJ* zOIi=q|LTyOShlnh5{tSN$r;g?5(lfa{=5IV+|k^YR#IY}h$xg^x`g<)J>WV+J)8gS zb(jJYvlJ9+Hhle`-t-fd>JeAYe7{MrpuN31BvvKrkg@1elGb-_yN6A0bLsv}|43$3 zV>}`Y@~%NJs|^!#D}_Wm<$Y9R!a|ca-}!?kVa58P70cxFs|gr>60e*|!&!(EGmC?P zIFsg(37EwbF!*9EClIW*@_z~G~h9GZ_#z}!Cp^Mu9(tonIQV_GcC zpEbs7VP;dH;hHVX;TqFsVU}r3B`}J?DH>B_VR!_9?nn#6LjZJT7KWOOZjpt#P-Es< zm@719zJkB;v{~j8|j!w=fZnX|OOGG^WnNoTV`* zSeSD)<`fHaxyCeFm}@l#?>%&z-k>ojS(wjh%z=X8u_;c-ct}mgFM|h|s(_&mCZ(W# zhPw4{c1%4>QL6b!DR4jx*L6BDEXCU#7?z^Jj;X0aF*ac5Y#u_~tc~ghV5*T8F^V(u z!*}Wyrn&(I!v}2|gJ9!+)coxh27GF&P#vQV&dU+&4y11JSQTkI}1b3 zkApJ|KakeZyc=NTuc4b;%J`nL&TboRHS}bVaBs|Ol>_-6)1(GVSeT!^;0d3a7KfbVN@lJ z;!H-}NL|GOO(WZM$d0LH%~S5PoIT+Dj01xs@Wy`lWob^r)7h9lSe)w`Q3{Ve_3Ap5 z^a|9EMN_*1nE7bIET1;;*@|6~Eao&|9xbzD`hYnS6YVU`g}@BXH8GTpYP9lw4onTo z)mm<+!O=tGIXkAV4&wVrg^i}J4m5wYFsx_35xNOYoK5{>z&zr>d={ABI577EQ+$9u z*0+E;c!3@BLtuV;pdIrJFiW&-C`|&h$;M)PE7wxSzHGG)%3jSr$ZrIYb=~9WYqVof z7qFR#A47yQm4tk_Yhh4>>N+`oWj{S(>^A#N2GhRM((Z@tLiS^9|tqV+ZCAU}m5Nv#Eatm@SaZEap*Q z2JurEmXsp3(2>I$NXs1#&Obm5WLX?Y;pUi+@GHy_6EIZ{jQzdd8pLwDkTG$dv+Y+xc7}4V}*V!(G$V30LJaYwv@PqJKuPu5TCf_!&pu}T=Zq@`L+eP7NbCZZq$4j%gN{M z!lx4d>Av@+yFOEh&-0oOV>$VxfpNPU$OJC1<&Q5E;&T)<4IN`S`D_Hn?c(k_-Hq>i z9^T38`E<=^BWRs`I)QP!4#9uAH}3J=P>9cUnh#?+`D_Bl?K%$s>CQ2l3zqAE;125eYI~vlltAy&F_x20H!yCOStB2>yySg_`1mv*#&Yt>2p=d5abG;- zrt=E%IZg9nEGM5HV6dO5*cic+KQvf~&$~4r#&Yu6EPTxTG?ZPREX3!_nh#?+`D_tB z7=XmJedJSj6yoz+&4;m^e0qV&)^qRQht4U)X94DPbd2TXb0#oZ{j=>;U4JUXr%Ll- zEGM6{gbyYs;#`ksK3Is)dd-KioP7F#$$mNWh10vR&1OoI;%)zbt>(j6PCos@XO<>j ze99F!72G5gXIS_w#DBUoo_`Sgk(1}= zQ<@KBIr)qLgPlM!fm<24d2t~=&uc!6<>WI8OtyYp3qFQj^vUz%*`KLlWs9Ga&loUS z{rt_2b5<4N6V!Yd%gG1b5`327Ki#vJeG*kZd4A5*d>G5gXDcvn*E}+Td!(uGJmF5w zhq0V|wgHpP&xWfW_;sQD{9N;4EGM6Hg^!sZ_pL4OD#Yg?t?(F2mENZ@K;&?SqDKyA zFaYkLmw)zUGmgSI|F>&CjOEPXJAldZ`TNb0KNjM1y5_@JF5@gbHD!&(c$=!5nkHBb z@_JWzR~Sv|b`&AO*SEE}JA7;?$**8lxEXEjmfq2fU%ps0QF7^xLgjGL_YG(c>Hd*T zG+HwuEp=HCZ2INTiVCg{Xg23%@Yygvvoz9M28Vmka zmq6)eD`=P`o$l=)O2a9$CF&z?%Z`STw!G;+Jn#$a{?0ypoNYd+*CRS4)8938t`6xL z&OkcENLFvAuX}Cp=$2IHW`#-W0|3e1^E6EgpM~Q){wxB$Kiqw6=42 z0AHM2&#jqJoE%7G&PjD{!f^_f8Gibm(N(On(Kj}-g-u+oDUd`U)6=}i z<7oo_mQ2@K5nWuz$K|wiDom}m5WAR86eOxPhYF}V&77f@>991PaFjxII9MOSW5H^c0^MdBju5Xp#4SXMqB?-~RIwDICKsVu4vvhPJee1N-{1(^PmuXggQYpiwht81(?`PDVn zTm0%8b-I#~n(ofZx<(|-tVvE3MyIc7Hh~7Yu+ad6joZpio!ybn-hrBKJR(1M)I9K9 zBhQ)xo{>GdwG3X#Sf9i~#!$GL0IYZz)v9~F>8vk4fTYn=yTkn3z7 zYpYb2%{*+&SNdM72#zbYw`Ai8EdVB7ul6t>EN|jBigANduG`j3c_m7 zYP@ZcFhQ&KMAxpY#v7KV9K%d%P%mKhN$X$Hff&Y6{aQh3jFiTSk^(D~9t!LH?XlLD zaK!KBSuw}(RNvYfZ4I@y`Mq+2%n{~a?TyBwflxRW;}FN`i9>Up54 zslKVw-!j%zKiH$ZBMMj}Z6NAJ;?2?a)d8>l*jZCO50VIR2nV>D>aD|PR@4|`1_Oa$ zpxtZfrlxvm5=S@0_ztg5E$l9*c)#L2vem7%Ig)=Z4ys zgKkarn^3}GD`KG4>yNg_v(jxwWw$o_f}v2*YiC~DR9%PsjSZmiaxTtU z`K{iNFBn9twtJ(4C>{^YIdi8On5X8f1pRH^KrkF=iA6$FsiAC6tNr126tms$WhrcP zz~+FrCEgPB$Nen~GOGvKH|I^YPWqsCbv)eMvO3VFB*%UlPm6O7|F+iFc%Z$#)y}_m zGX8Pz>eV4sYKu>?uW4F=j+W7f6&+crj)YoJ`>i6v&hCI&W7yy3Zw_iM>@M~C?4N^2 zv(Fn^?Qd=kwuhu<{2_LSJ`wgnw5h&on>_RX>ZS%q)QC6I9$ek(_Xnk57!;f8W#;Rw zu!cx;bG$j$-VQ1`Smqv7Uo0O96|L;9>EhfeySH`E*tgkxcpy54pc5p^Vo z5gpVqZ*a9AiaZcw7SVfIn4GfZD;jeJDO(*2sYVmUCk0gVf3%)d%UDj8`2F72mSDWC zB_y?3Z=35k)lbUAlI}pz+Z<|Z4hP#>y!yl;^(~J>Hr317#in}61$A&&(~1!*CfeH< z4X+NMM>*y#j@m$P^+$uPSPns_=kz-{EeS=zcs37iswB;v7HYcw2f&7TH3NtjiuqD{frmCe_F?p&B{m%w+8ITIQcw)-{HACE~Vv;4^c_CyFm`4(`z}e zQQoXSJWH8Kz6!c*h54kQ(AhqrBlckYevw1xDUWZof5=9HxIvsz(1&INJp2C-y6U`2f82YcU_b5 zYXRMCeA;Pu`S=}<{KY_b7QZxxn~dKV5%v+#B)p_jbouyg0l!PUc+Kq-GK(KXWLW@{ zgN|@29BN*#HE9q&NNmUCsi0n^GneKz}mB3S-&8R^mYvojtusUdKM*)m(%C{z31^1 zHNG}rWwjKK~- za&!!)Qa#lu#)dWi4b7qGhOWM)!F55StH0Y=(lWSjNl&Z*&ytqzedKXY7ruO1I@G<% zvt(efZ*cRVXGtXBSrTj;;lD1=lC`y-C4n^BHk}OmI}*WkG?oqoOj?U=I=C*C@CiPc_9fH4aJDQab#TN`(!Hm zw1qZF(#gI>~{J}b$Y_5qUQMqW2(84zOi*YIee>^PV- zF0Hn>jBM!~&UC-2sAK(aD%#fG0iD;bz4i5EpnYV6&iaOPmM^XLZ3wB-BjuFevt*qy zGTdc2l~$@ir?lIcV+8BDAR2GUhl z_{zND)mHebyx}!g_(^%gYpw8;^M==1;iu#cueZXR@`g89;oiLA%dK!<-ta~%yg6_9 z3M<^7H{5512l9qDTj9aH;eIQ;C2x4Z3UAFD9>m9*vnpOd`{Jm6O42iBK_2!UIN-%D`4TsKr1l@wzY>N6741liTe^53H(0n>x7U| z=w?{!oK?X2yViC!%8Ct4CQ3Mr8GR$lg^Eo;+5{d+2ph_XjG*Y^I!b0z7qA`v}d=`uSO>`)g zWieMH12Mb`idxlEuF;g4R45h|L1j}^m`pf3V2$gDW|rpZa9#BI$mt(d^CmkiaiG?^ zQ?RFY1QY8qkjFy_Nhck^G{ab^!(E07PodE1SW7zWOQzEPHea+=)jD~&H4UelXyCLo z5atOY1|*n~Ly%gJHak$KFjEI6f-TURZ8)GXtKxT(Gk+}78g53`{J}VD00oW4QfVX} z2nW+GzLYO4V$CFqEiQ-!MI5vepJgWQi>9N#HKA4(k6ne)N^~G*K*==v(Arp{-Qqc0 z2SU>P=(6a19v!VT8xo2_<%h$;07{-%Z`IqJEQN}jjwR6X<8j@EnRuB!aiOx3-Y*+n zO#-dz+TRx9YY9s4AhWr4W^JKlDwbH^g5^LkAyHoj2|g-=OtfQ^!juvEONYo6&T-mTSzJvss(cIY}HYnUxHOWj$auSSo zM5NmgS!5_A=DM*&z(Tt;IuZ+X;Jp}?BdOgQEef#3=U3W_Av1JHAe2NG_P0qDFkq$* z@W=d+^$jwt&d_0XTd1J+7op=c=8?1Qq5VDT18wIzZ+Y(%4L z&Z_t(NQw-zKhs zMouv9#^Zowam--{HSJ)BRYN$W>X%X6k_n%g32HW?XAqrC1(2~Yj_9bQq1YX)0tsJB zN-C03W-}8K|fTT zjMc3cL6Jou19~tVT%)uzweORP1Nu;UO(>D-Ktoc`lCjH*$KgZiFsev1-0cicMtOfP z!Z}AETck_2ab(S8&2GRTux1dtv>8&V6P;l(#k3_5Tgz!FR%U)GQzhk$kE9u&0vPh+ zI%}2Tnc29(<``0r#XI5=U)0wclu?`#%7PVJbj`swsMlB`X_)EHvck|2eb~NCN7~b< z@Knr?_q}FHB^H%TkM!(_bES6VIVxR+Db2R%%(+H0Mgn7z&Pb^hY?dJ*J%}P zB{;{TT!a43;m#TuWIAAGtjwabIC6c=Ood~d8xFSm{Ohq|k3g{{lhn#) zV;y7>V^QzNZbTrENJBofVwFLI89UgbTNeqlqAdYB#0oL9mI{V3C&)^yS-3+j%9dad z8KyG-Ie24akeQJTY{)<)7-`1%Yj%gjtZ2;??lg2`hj5R?Q%M;*$pm9ZmI>Zz1yks7 z!iOr16c|df6v<#pcKoD(&q*dQP^aU;gou3Xz793X9(Dr(i}~(YnyJ9f~&x2U3;jgkurOJmrb# z*$Qp8hn3G#Cq6CnW)4-1g!`~qKV~E>SbVL*m11%`2yi`OB+PnZw6s}a98efqmZbzt@yoeuzXE=jX0a?&6WTqn|9+FAUcM*V*Qf4-!Dzj6?V_fFN zV(lTd6ePiZ69}aL$a0w51f<#DPQ#r5GhnVgAQTF~K8K1?ZVzY)`&wljOQ&Lb24rB) zb^ zsbmr>_Gk!dkrQl&LHQ#r8eEHJUIVG;xQQuF5+jI70zD5BS^MRZm?=P?lMAO8sKFL2 z&{9UVP66s1VY1)E=%E(u1J9CC{6>OTZZzMJPON8L&q2XQ*#u(e6 znSIUJwTGrh+k|AA{6o-S(K5I-Gt8G-kX)!iD3FbNp+Smm| z{62esGBu+=PJ<542l|F;82zb2Iq)mYDNgU@xc@5t~HJ~v~`k&%j+*~CD))DoC$Q({Yr4JHy$EFAKQ zDkBP`K3?aml^Bux5owmi%tSenp=v7=^X0iwMq5Uz+p)3%_u<8G#TutZ6tE&`a}LP~9WhVbz9x>)C-q zt!XS-qj)=pl_R!EWL%Pci7@sh0>-hLHFBDdwVpJ|to;w*t%f&Dkg(Ckl2QxAvF{44 zy`i!*$(FE6nci6BcXn45eT92gn&6F zfjJfmK{Glw7m~96q4u{jV-AW!W>O#_2a!283K5E9(g_h~{Y=mtA}1zj>7S&`*-2~; zm_n@Ac}UepdAw$84xYJb+eo=)B2#lb719n)=F}FRKNeRTd?YdlRUt~EFd$0=u~~{q zE(M7+=8!5hvf+f)<{C_MxfT|gAeA|;3Y96_Su(DiNM;VLiW&DK%`qoS%f%3B&Cyn9 zrO}e>v4n%-RC9eZgXZ8XbSQ(9%B&A_Z9rxR>2X@f zRZ40{*V=dIw3w6!+bOZPr;;_R{1AI6YX^B^s;UzwWLukD4z<(C>?N9_B8eq2k%&dH zfI-t*@_m?{8tsiiH4)@%akD@&k0Rg0?UbTXp^wxO5EB$Eh|CUsgq<*?6?|5NIFTa1 zBkg2LEpUUuQXEIw!xO%>R))CcK?WW>flPn`SjsBp!r2&Uj<(aNnJM0XwPL1j>ZgTv z3N<0c90S9YsVXJ z)o*J8YbUF=7u#udC1P*8#TrgdbP&|W_1ep7jV1PQyi<|ssctr_HJ0kiTWTkUZc1{} zh}mT>z1h^u?DS6N{PZLoTZ=X{MXSnAEc%xrgzm9^V%P~n() z;~kDU=Z^SR^Qi{yphTg@&Q5v*CNG#Dgrb-&N8~MpsVi#jr16gCa46XZ)ohInrX1GU z>GW)aGnFi*smSZ?l(OT-Elt^GLY?rH8bzkTLB$Ug@J>okrm{Ru>g5hkkKuj16b#$c^`6#yp+Oa9_HIBOlV6g zhC#)Th;Rf4cVG+-p9{@hQgNTgw&8M@%rHJJ!xyo_^cc>_am25cKVk4`CeyiDeWbzp z8AjBSiZRd)kKmLTl4fQ&IRurO9SX(KpxD}l4`4vCA1G*MDW1fO>6AP&cnn{}*rRY}BcZOq$0SU~O#^b~g4-a3DB5jT~f8wfXp!Jd}G$MO7~6p+SC#Kg_GY z3x%>mxy_GKai5=ilTxmO!7uLbSj!ayY4~vf*STEQU;&4za*51_^G#UsqN}9hVMj(W z*(s^u7n=d@RZ9xI8}OXYbRTc8UVzYx5rIv}lU0$-=$655ET2j$eyq`Q*h6dP8>#{4 z;E4x>MM&7VXR~oto$!$#H8M;yY}O1TokRTW5T77+Nx}y(mZm!x(eBlBS}OZ+fEBHO zC_>)LN=J<*`Bs#lTBt>aR8PH*<;OSNI=7Ta)~QHx8k-(cuA4w8rRV1wy8O&7DdmGY zF5*fm;+h|iJW5tsb2S=?6Eivuw#;1`o9f)Gup`3Zi&^xV&c3mX^dr6kMb&5Dfns7* zQW4ao9RvNg%3*DLkSlhOMywS|DyT>knV~)$>=^M64!3m=N5}dz!@XTND9KBKgjt(r zmO!swiz|<^*^lZFIm0J~Vildhu7MBKad*1zqz@3&JGg1AN7Mw@+i9q}KsX)Z>Kb2l z*I<%dQt>X`9{9{WEZv#&*;|h6Z{D zaqQqMkwJ79w@j51UA9 zs_ArEYKuK?bg-vK>+P>8c3iQFnxU3>LE-T2l%UuzxfzU9xjT(F8)}b*^2@rXq~K#J zlHCb1in)A%5|b}LMAcob+sy1dveS-lg@U4$_(2sSX+~jmbiZe7%A!VCZS~g^}@e zunoH_VJr=?YAmVXh#@+X4<0-;ugCP9UFB?s;AKcc%E_$=hwPa<5h8hf@q$FMZ&5Hu zE2-cfnCvsEcc0w0;F~gefkB0SX>Q$Vd6sUs!wkd(GTISOw+4|`gd z^s;m>x|uYOn~c}Qu#Lo4rfQf(Gca9iu*0chT|z45b}QqVvqXO}$Gm=C#t)f-a9p)= zJozkV@_~kW{3)_U#`<%GuYd$i_boN2hb1& z^L>uA*&^Vt$R~Oj9?`4A*-CVOt{aq^V5Ik0tfn zY0SKNY=$RDXb=&9Fle~s?Y$p)?W<3H>^t9iY`@1IxjJqbs|A0VyEF0CYu|Hh>7ys# z|F(}k58@9C-hIY@y?$Z*xLNz36aVc2Tj$@P_>~v^zG>?%D{uZm&DXuxMlQMLGMIU( zN1XDao3HChd|}4#etzFg$L;yxwU^&y7&`?2v#+iD#otFB+#39A_-nUbR`axBd|U9V zc0IP_+nZnb%~z|I%&NQg9VjZz`jr>GW8o27w|aiLuLAIyO10qbA}zUG#%)6d%5*XbL?NW{`DZ=DhDBFu0azV)BZ(X?YR z(9^qliaDM5E&YZ~og5(b&%#$gc^6u>G-8}FnIE?jg zKr6FUDl$&i+0Pa6?d=rL6?ILi@$I=+X%CD}G24YJa}D_`K)V!5<9E2Qa9&pfcocZtqlJ_$F)OE%5 zsq2dAD>Xi+L+2P@(7sYbYAT>=YUky*psIF6c5lC6w=sG&ZikQWjO^ZdYDwZn&>Pzy zDY^84(bAp4-8)M_^zzd}CePj(FVA?{Rr`Rh=C^_Rc>LxYti;?3?*J}<9|eK#zfmfC zgWieS9Zw71!WSj^f z%Y&aZ92;CU9DS4x&21fU>_IbZJEBh=|_Gq_MHS4(%KhrU7)-&^aqDDeF zNIgT!(1AqK#+kPh@XY4Md`s6OeX1VmD>c5NL+2O|XkWg1+zXn`ms{8G0WP<$8Ao?&qiwRf4i1cB zn|0qLeLm`%m4nG8C;C`Cb!WC=uV6w87$WPCS<5j`Y=dI_D93b5bsIpjNE=iG9tV64 zAnUpgkf*fk0hui5b(_$q+JwGRgA%Q9PiddCO(rO%@+l~#IjZ$`w9R>nS2;2ch2}H(wL66di`=)Y9J##aZn-GOa-^|0 zZTUKAF2~Pw%pV14fBdLm=n@bN<~a$t01zkBMOmH(NFmz*NM-qUKqyR_Qyz~1_5gy$ z*aCKgi$;OOy{QA*LR9e?L1cb4+dYsz=)%ACI&{iY#4eeNy?Fi zu0lOxpffSYX-uhwS*0;EEX=7IQ*2?nHHOzNxeOYhb=sZe^cu50$BaYX$YqggXcXjx ziMUB>Q;33c>c~<#k50=(G^DW%R%7;NRi>f7K5JE`OsvXyVDaQcU7CDWW!@;#fhNdf zRc3yzVQfMLpHr`hSnu9Rtjc^;)0pgpZqvw!`AnE?w=8ztsCvLIbqqNjzdwWDsah{F zUOww7UXUm}x69qn`XWiKbxNWp8GUrme(;7XDMM#7MvW=U9kYvuN5vjQL6F zw1pUDNoLwY%w8AxC4=slAPFxvZnP5TYXhf`>JRfvS}kTIR7ziWJX&W#AjE^EY7r%8GH~mZDa-tLd@1o8=2vzF75YB8=09lGK0^2 zVIK%zRf;K{X(Kb-m^F>POdFYzFAb-S%*Y4em{wS3AANF6W7^1!GTt(6WM$$a!OH_{iHEZ!VAr`kr}bJ4l_t{#(LVwj53omZDeNJ z$jocd6*x+x482SnnVB{+LR*%+~U{_ip}Lqih$=5JrE z#_&iy-#PQE(ICGZ(Qm2wvU#5^%DiIGNvP zt1UDtV7Jav$Og-sHnzet{0Z5^c^8{ilqp#|`A@W7!aC*YkN;I`BNWZIU|!^3W>17x zD)^~NZtsU_yJ=e?liLc(V-{q}_CK69KFEpc#b(Td1XH%vLE^0ajj0;RcDVA^3?_D-OkxrF>Q^HV8hy z)rti?CNOQa!n{G%VW`7yVnN*iIc>Ef_cmPpsqj=J$X=b(7AvN15a!=wu>xx0HT-z) zk5(jFFypxt4>%r&Q=L1suhjS|d^~SD$9PElO6BCyzs%YMZ75tBEXNt+?Ku1eH@X0) zg>itm?9`ndC5b%?h}-^1nHhSJJ@ib&3@`si5SrII!_Ubzi&hLXQKpZ^99T5m@MQU@ zE&qgHC4Qzm9i9MwD8IN*LfzW!EZhw2vYfO2jKhOhDg1n#Oo|i37P5xg%c=7UoF`{; zJR#ga*ge*lK~B}dbE10sX{u8lIj1$S&LIS^s4z3l`5K>@X*#anCb7T3eBOc|6AR-< zS7)dr#W<5TJ{Qk8mp0A=uQ*dCXVP)5Y@BD>a3)NS65}k_ILnFiTyjJh_5}11Vfxe& zVfso9o(WaB2eq%%_^yR}!ot01;a;(DmVu2cgYzc}M>&L}Y@%=+qJ%?*;;ec6O^HVv zGNA+obv;2mcrK4M&6B2dx#Dpba5XvN!8jC;HTZp(N5REq#e-|>!gdMR{A@H2B)g{@ zUnpgz!zM6fy$=Fo9?7)?=5@qhCwWu@i{Mx0I_Oj4LSL!z82&5VliF8m{L;cbXW@2PICgmz*AkZ-fifU4 zX#Jb$g+ypW13ZSTbOLpX^5tvbV-U&)W*A*=178eWuKfwdVWk|7Uz4-{XN%DPo_L)0^y-?JZc@ zd+%3feX|SX);Dps`W6EpUgXDg`6~QGROoCFECFPNF9l?UF9T$SR{>IU(2|9!aQak* z(^qP+nicLl+V{U}SAplJP0>dN;MRWT(Vr@x`Cp%%Px0B!pUbW_OsZVC)ONC(DY#wE zbaLsl&n6wA%VAr9!tQo)SYz15_wC=O&inhn`5ssqusi#C|6&BVT|9}+wxXLU-DX$S zDt(GtVV!miW&!DTQ71C3!yd!sH3nE1OJ4oG)C9cR+0!Zk&h6qUZ8NP|lGeeEAH2Y% zSI~Zb8%x7QbH&cVmjfI^l*?!5ppT7icX{j_?7|@XlN>s+U!ZJgSQ5#e`F%4n%~R-x z#W;MW+)&06wN+lK*FTV{( zaQ=fATH~RepK;4gm`rK5MVAcvas7H~eKYnpNFPSCt#QYkAs8f|^ya z9v0Z8BNPqcqWf^#I#OlU)`51aX(I_8DST2hZ6pEHZdyBh31Z|jc(-UU6ocvG%{uh7_1VuOi9 zEP=aI6=4}sxF|K`i}Dg@h1`$Gj%a(7b8s^g^jj+-S_xkt+F&v#Gp{n+1}L zkK@xaV%3(o*g~B)lHl`mDTL(`_e`gaBupDgNQw1>NGKAVHj<#~!rUqFhkeN;?my-L z!mH2C0az+*+DL+`l*8?>=fv#Hw2_2qBMIm&CpZLS+DHOE_EkNm+F3EtR4|(2Y$=w+ zls*=oK!?eb{yFDH8t>#k=KD$=zYV7PpjR)7I;$ghfi-eL9nSya|l?trZ zP8#oM#(m&z!9>c- zs=$NTqw1^f^eASMB^56d)44eiO#1oW2NT+oiisD#^APlXpyVNFb>X~!u)lwBK$!BI z+GyVU7dZI^w1!Z#dX(v3H_ItSK#^QhaDNkNt;3z7ZxD&V%=D4aHClyGrDE4+c*U1 zA8T~ByeV9Ujpaj0#Ys9Si3_BMbd;&tZeZ*kI(8gq`OE~FOQ84NrUMx^Yle}|A%4Py z&zZWg5^~ylI2h0OYC0{IeVrpCyaHJyE98R>`1xAAznYsc6&85}D5KwZpxm+3ZJkh`(=e zL}C9EZCT7k8Ankqqx~aj8z?=t!7^R6=E1=}-TZTaP6Lfg`+B6SJYf~TH#0CA8t54e z^BU)Wi){=lKWf?0!JZzix4*``c5dcyB6^!z;su3Eu1^Yz-RO3OS{Di9RbnJfavYp2 zsTk9eQd=XP|4xvl!S2+KU}AkNE}QgJgjYim#$k8??+U}sTtlQ+}}RgZ*CpVds% z5Y*he8L!(*D((SR&m(arpe59rPGXf9=IeIs*ai8%Ln>`w#)F9yGZufjPJhi{Z?`T! zyZ#+OLllx*#zwmbw+={~Edu@uvrmVEzGz20-I|EuKl0`ehOLe+!_UNm{hzgI@{z7< zzx>e~=I!_XcYg5w7oAb_eVplV<+o{ak>DrVH2Id`C)zYQ!kyoyNm}svZJNA`hfAhn zk)pb4L+?OW-&l8MLv_{Cs-@LcRrL)^t2T^bZo6S*w7Yk3>6W+7sB3UI!^!g2e>z8D znC==J=;_@&#hltdho81-($lk~4((pM0q2}Jwb{T+iESU|Peq9AH9Bq9-vxCX1<4ma^m&!Zu0(2jL=Et_3n(_-}}L120Ua z+>KL#hBjzGwfHCeD)BQNPiK1ZV;J47(5rUiC7Xe(HCixOW*y`3yfIJdH=s<)6)_7f zz1zlyQk|Q*6)>;dixB?kc>Gtp@p*`<%u^i4QMk7UuOMR;a$dg5Bm!hQx8R2?S$Rg@ z$C)+_6EOX^0g`n!e(HQYed>HXeWk)d;cnA(+8_a|2UZ_;UcM1y&#FlI1t;wcmVY1- zCvKcL`XePfulWkxVsfG=MY-+>S> zewf&Z%WdNS2DUDzi5Z90%&}LT|ym-`Hi5GoJyyz=6p1^;$#~kB_+E;440-vILRr_o< zFt%S%Zp{6!M-TuZ*&&8UlnA;byCD#(-W^BVUkIZ{B^17^`Ly^N%EOKh8Y$U%xlPC{ zyGJ`OCN`gtk!OyOsf2dCn@k~^?%?hnLC9tKVtUHWgc-W(8YX`}Gh_0eap?nNGq*pw z=jGCuYWD2eV;53XsushC;DZH=Nd)pagaq(21@d4Bgk9&{hp=3MWE=|Q&+uDr$%W_~ z3S@9V)LvnmIJruPHgedw9;81sR9GGt814#?in|~G4^UnT?QT>9Wq81Fp?}&8DP6B< zOBep;40D;3+x-lLE#Nl)iS{yzf@5gf!;KhJm!0P~g zfHwd(1KtYg2mCG|;*NhGum$kPfUSV6zcxUYy9Pfc)buH#rmxg^N{7yo`c^mtT2Rr^ zUWCF~!;A<`+1$@w9&kaXI!fH8TH7Jwnj5_HVoKNI2O;4*E~3{iMre%*!&C=wUi?b% zqs!G{+kmUd(P50k>W$*JVjlj9vqXjq{(T&!%C*3Zfz!b7;MNg?t^GQlyuw@kW4dhW znfRe8#SNp%nU@j3MSzf(@em+5jWd7e0J2F)ubPBD)g<(l8h7i^ImTDC&pC{JV|*8y zg$|Ydjq&-YRO{hz`$MJu;b8lN$NsR${!pbK?9Id)t;VkyZyS`lD>hEFd^8{dc}6It zPo$;TNLs#)mXGqx0u~$jnw_=}y!cJl>1a2IE#{gag$ew;N;K_j7 z0apWF0=O3NQb6*!4Df8gcLB0omjhB<7*~l4eM(&DD>WX#e}#KQ`$~=I;HW1vFgUh( zi-)E>JUxTMo{_H3fj(?^dyefJJJFNbHk9ca&2)P@J;Rx^$1)?MLex3x>BkPG=h#p~ zUAJe`xucnp6Fr;3%}HhpHoRSf{Xc1ds_L2|V_aeEmP{zS zZr1?*@6Fk5%1|ubE?PF(o71sUq;vD68Vchn|goQ$3si?P;;kxn0lUKU<~g z;WOW>(i$$g`uirmg7&mHX>+@-x22^l5Y74X*hg|=jb^ruR`!dCC<{bXv~-KU^P)$k z^`WxIjue#j&z=^045S7B%{o*Th?al9qDW9;rR0SryX6G)5rnKLiu4;{VBa!xCuqE2!g?enNSNgH3o(i(59vZT#-c*rI^-Yz2#WIZXSLTA%&#NJeSr{CU{Kx>M0jmOt{l0yIC?bd&L0hk$26v*L?|`7KBAS)lp2rkjkP7Xi0{=9Mq) zo!^mn;X57t=qBSAKtLKaH{Gr1CM)kc1pg2;OYTv0?B@B}gXQ&s<^x~eJHKy(=9qi; z&TlzruKLQ}`8^1lL+&fgkL|kzG#7n!@BHor&7Ax9&hIGDj66`7UlPGLgJzeeo2>qr zzp@7nW8*`G`LR9T1DfAzy2<#lJ^lfjHIM9_-{qirM$=8kkNJB8G;Lom%&#AG=Yi&h zZzwv>RPxEoqo7Ma3jO%4!u$?JhSq~-mMBmJ|8qsXu3l6_Z!fxc(O3RwFo{7G!JRI$@sB-e*~JP zKP=3T^0E;$cWb&r{JsO4${+8Y-x|<-M$;AI_Yi0feY!Beo53Iqn%91+=q7952S9ht z&#+VdOGP(X`>sXsb)fmZrYn>`*E7)f&nkYCweNBSUjdqjH65xwue^j2@LkXx@?2ql z)u3w!&H2ApbX;rX>mQ#3-H$+X+4G8Svhtpa3CnjtbHr~I9q0J@_?-{BkAdc}-z&Nb zfXT+ouYsog4~h=i$jguNcPMCvUsZII)gQ;pPk`nRnywJPzk=peZbHBn;6D1L>?dpc-7sp%%;$M*OfXi9ePo!?5(T&n2`@w*B%FZ{hQKi1zN|1gZfJ&LYS z{rwy?`?;8+T94;gHc4@jo{9K0?8K)h#cYarZ=Es_DGJcfjXF+rF5qsx12%0Zzy2@Ou>d0%xu)GHU#a z?pV-C{&My$u>3VX5l}Sniu0Dk7IhBYQ3$zz3Uo(;?iW*_I|6jOr$E;Lx;Og+ME}*%X9nr41~{}KsT}7NO!;#=$OBQCeTex zw;XgwO`wZU$RFvJ<)OnC@qeHV_TJ&GJR0+V)&{$+{L?nrr){uL+hG6CvB7S3-G7P= z_7zK~ZLpg*3I*eiIhd)fxOdD=M|T#F;Z%JlfO4R&1-(>B!Y8|-OcAdpDIM!(jaVh8F|7)z#Yu>WV;V5ebOTKG`*DRAS2m~P=5`dOJQ zidFR>t-8RDEQd%E<9#uVYNVUjW4e8iCUq$T?7mbg5o+#004L`p#w>%xzN9}C5)NeS zR@5ojQ?m%&iZIz0OQhtwDH6UZyY6N_XDE*07;Ip$pk!FAQbuvGsuF{?%;Zc(nefph z4X)cTGheLpBt@lVHnNzdSilyVAEwY?U_;E+Bs!GQc~%Hn&Qei3qPPnb);I#PFk$o( z6&=%XsZ_HCN_0}H{Is-7;@OHg5c8{>w#gB$}W>;~oUT6+uwYxP;{@Adv)!;)*~L!WtS96)So%M7dsZ*J|C+x}deyDk@df zU{SDQMT<%+RkYX=gNleYwkYrCd(O;ca&xnw_}BM&9Ju-X<~L`Xv!63(&Ws#jzSO2T z*5#z&<>3QPJEe#Zy_gix)sDfdMeO6OT?qZF$-%1y><@T`wtv>PiL$#>@M_V3u?0iN zgocmuEvLj>9yDS&J5wu1%ks{_t0P94j}1zn8q_O5V+k&mj!K=brvL}X6#G7o9y`eFkNNYK_k8e2-|_RJ)7x>^>M<8 zb5^|^ec?_Q=nmNn-nQWW75YDoR!nWIDpPjo$Ji^{eicvD-b+uf#nrQCo@z@~;cAbT z+7PJUH7Ydvl+b9m`z4FI=5~zSYehp(8_iy)-bJs^V=d|;yZ7mFglrz{w!ik`pgu>9 zm4W`ITDgO#@!WS{8$W+H{L@B^%%@w`2UoOVSwdS|meHf49Dke#OOx8n3MA1aiQp#lb%e$Cs1n&p0C?&pp6 z+3}O{Xu*I%Z1Fu}_|QRT>WeR-p?vP#RKJR(Zo%lZo$9fpiV6y}9XQ6k4bBgWXN>Y0 z@;^M|#d`M^P1@c)TTCvLWk)dIH>diNJaEk^h4*3P6&G#vFFNd^fkj*Mb4Pk?Q z>+{bW?UOI~cqd=~Ic@aF5yOApXy3Lp=CemXZ?sS6x5C}-TD#n;OUh2Lwol4lUUnz_ z3n!F~t6(>2?Z@1Sb)p4!f=j1eaNy^S_NNvznfCKW`|Q!(^8Uv^Z?sPi`H1rMf4kAX z_RyX|A!Q5o{tRtX%vbKlG7UL+_}HQP)?Ke&y^eCU_x+U&(6obl!3bIjZ|8TnZrGpe zcX54eaQqh1r>&V+IlT`Z*A&wYqwZ+zu`zd=VkWiGvV`X}_NFsiODjmVIHqy6DL1>@ z@R5Cf-h*G&Z<9UvwLf_mVn~l*22ZL8O|Pt&ri zX=|PXovtN&>KZdc9bzPs(y7KRApR!~+yY=Ky@+=)xK}ze-nR6ajqiWnrvLO2OnvP~ zoTx5op(@$lZTd+xRc_3F{hw{xuOg`jXr@Sd-&FV^cJhx~_Epz5-`>Bq?=SrSxAniH zm+t%Xa+BU~%It8&d6Vw^{P{I^uUz^1F0U`Uu7F)NjQ)zmaU-9<>4t++SDf%dkGubc z;X8~z@!V@RUs}+8r(G{7_;~jVvlg)Ph|zy~(uE6;yMOgjFX!EqKll18c|}Ph z|5v3W7bSi2kLP~VecP{Zn)e$vm^J#fFO7Nco0&^541GQPrH8IKid`mNHTv9!*N=F0 z;=ez7zSj{u^}XqrWQ7#oGR^F8SIytEN-}@B_M_VtT)mU?(c~X@@BeXnCAK}=w*S2M ze?>|0IpfF8EUBDX+|G{&v>IpLXAbOcZewS*)6L-a`R)e^W>!{=n>uOY^zYz;-GERnyOX&QV zud!LTn%gTYuc$02sj&8qon~f+mrtLlUw`Xx-0%)9E#|*#q6NPOl}}apX0&t(y_X-1o;dd~s$@b-ehw-tnJ}fKc%)esIBu#N zb#dGvOJbVS}KK=~TVHq)H zx09D-x09D-zdm4fOI&lQ&MH?*b5{F0(tFNEMH@-pdMZ}ecBp>Ssb2T3z5y{HGg6qP z^d6Ev=L08)%{%5EMsoWa79VHSXiqSs$&B!&6xVPVzbez`hqeZCl&;NNkLkkbb?X4% z--(}-CMU_F`Nog(nKgF_(zZ9Mm!(%XBvp1T!~GUM`;*?Mw(dxx9oI{v^VZ-|X?0zP z(#ZTv`5*{cwlrEJsWfuAu4O!J^fj+kb~nLMz^a!fMXyspi3yaEc~VAQgm#4 z-?$bTmcE#)PTdkV>#EbfXT|_=u_aoN6)9@)%!e_g7}@fjVkAWtTaJ;GHe+Nzf=5uk zbByrGo9&H}hda8Fq0D2l$}L{zA$m5&M$9HZVz@%3q*$%G)R?kgWRk|zOG#43tAdnq zHnkE>NtNA9#*zJ$LQ{PygLxh+=X^<}V-vI<$#^7xBl#PRwx%{?uI61-4Q}l7N?}2x zBPMlBZTKd&VKjeZpRXb{7m?E69-Yk9Y&C*o$j@IaUZjG)~b)B3r zKeQqC9xiIk{0VI)^-*rXl}o)`x52x|q{(FY(1s~1(xXKi=MPRzXzeBxpX*x*OWOtU z0d^QPNf-#rdOs}Hv)4OSmD?Ml)>F8xsv(OI)u%;6>m#9!bq9aDZCl+pfn2%P6xwyM zL0;KUeWnVwWvwk=$yyM6KR((;%`RHm1JBwz-OWgGb7jOQgmomWS*{?{F|by zaq}<5d~Ixe2P(dlw)5}N+>Fh?UQInu0f^+Uj$Wq#M2gn<8952F%E)W*a&@3MG|kDu zOdK^CIybbss;9mG-263US%SSXHrRnI+ji}Anc|2@31-=qewH8mt!I#&)?3Eng{`4MMVE zeig}vWu1TZa#~0mmMf90AGaV`yH6uoyMICYoAKkXzPS&5a|QG~Y)FfctSiMx)|DD0 z>&iwX8`95xbF`7JIRf9TSFDdQs0*iSI_|(;I{$S3Iln=~TfdlZZOM*$kX_*++HKAp zrdQl_gr@$m9M9udz)zOkBi#J6kopSXoqAGk4)-g7!B4U6MEsm@uX>+itKxJTUFBpR z#W#MlO&zAG{5WKA3sq{@xCXB$A4U1O1~;j#GzNFW+D7+mI-jB`o>bAqhnI0(`$}`{ zj?oPm?ShQ43FTGOD|wM9t<(B|ea{X1(YU6eRZG!@48x(&uEm-Stpc&yJ@Xt0-sUy} zu{U{yLxETk8;H&*sojigUdUL2ps>{job{ac!lr@9LB>_~;btJB^M_*2m%Haf-0RQU z*!ImUE9>yCe`q7wzs^GWCfBFA=bnGdVy>(Ap~Jgg;GTQ#FN?YUVa)Y=ZT$N7Yu$6t zem@(H{`CvpbMJZ&ibc@>kbCZ3|5MEM4+7WCM*=rvTQ!t-s0=OSWE?+r9(3gGY)58; z;PIRffv3S?@O+pLC&AO;g>VF{h6V8Vun@ihN5W6wXsE}6XTyU?kaOUv@H}`f91ADH z^P!4MG5jSgfqFbx3U7uJVJ$3!|AdpE^4=7fOu|;cesCr{7goV?cmbRRFNP{*m%^Li zW$<1YhQEh%;4`oWz5=g+|Atq>RN`hH>;bQWJ>k``KfE3ehBrVJ##`WD;H~gu_-pt% zyaR57cfvF>#$B)e5@U$_XWfd3Kpg3rJc;j?fUTmpXqYheT~g%83P;h*83;J@KZ@Kd-PHo%o| z7c%N=Q1!r@a1LAz?}TqdeMDysd>sA_J`ev6UxRC59efXNg6m)d`~V(K2L2};0oTJR z@L#Y3Zh&D}2YCwYd<<`b8{rE0DXfQ|!JWwGpTjix1>6OG3HO3u!Tn(aR9o^jR1>j~ zyk%!5B-xn>NvY0*Tvh9r=KR)`Qk`Y4jWo@47`v&Ca=*2!Hq6@H0~f50J)~XT2wykK z*WK>x?)G)7ecc*gr=GBN??_ilb#i^(Nxtq>UpKx?)G)R^>vT>x@Ude3%>4EU-!DNd)L>!@9XM)-Dke;f4**;uTziAhA+dF zQk{K#-2uMtFkg41ugmpyC;7TleccFOcebw^>+7cYx^iDP*VoPSb!OITF4@9PR7OJc zqWSZpMf0KqGSdcTRnd`coUp9RqBwX%2s_*GcW%^l@-=|(^Cn^>e{Q5`UL+Kb=7*z2 zb8`zbGitO-BPz|j+#y*RHS^6WU+R=49avkQmnms^UY5|-6a*GJ%5v-wA~23?$2>%c zTBC0F;2ki#=8xR|i~Ab6ZEbDz9?jp%6hz3}vKg#Ks?1%RA#2rP(a^lyP}oj5G{gor zFnViy!r?Y*SVeSjywl*1cg*m5vw5ySSlXU&*dNi>YS5oRDv@)h+d05wUH1n^mc?v9a zlrypUCXmV7FM(P=O>*}-KX+>iOLG(J+BG+!u^)32>zJEZtMUH^GdHo(&P}Xs z-`vFN?{zn7Z)5LfwSPBU@oL%Crgpr?7^mJ{W3tc$68l+>KC?)O2m<_=Zv#6*^JDw3UtSc7Co_y6$CZS>8(Nb$8H zcn8VaEu-GDA()0_UA_d#UR9sg&KoR3va=6=^v$jC%^gFlVZ)b;WL;6e)w(hT$-43t zk`3Sgd~>NZpw`@pNH(r;xY;~}KH@kRy{_rF5+OJbp=S5En5T2HqyAzDe$7DC9%de5 zWJ%1^P)$Y1{XBky`N^Jpv@jL1+@INqGZmpWv?IyGp;7u)hSQoj@P^XCQTmq{+us`1 zD7_(el&;~pW+*)S@!U|eF$XU>G)2%jPvMQ(V`o5A{b>lqq3~&bqAPMdxApDsbQ|po zpQazWVAPv1VA>&?zuO- z=Bps)@P_}Fx#!;XPhzg8*|_qjA0BnjJ^Qc4T))Xil|TG{+CBH&Kg7n5fBjtd+`GPu zy-EN2VeYwi{k53u^?~bVdcf2gYPh^Zd3zxzL-~z%^?zr`tbF?(%z^L2-tb>=5ZnMS zf*->gSPyT3)Xw2W@Kd-J()|d34L3uFm}8D0tjyd1J3+36m1Fs?m6-=%ems0X=N&pY zrURP@pW!?SY9b7~;mwfwxo~H~ngV;nRM;P;!;|4Ia3tInDmUX-cpl_CN8v><3%&z8 z!!ID;7z+Ov?gi6G5yoxdUEscOcgVMP!rAZuxF0+aj)L9bWOxw#CF}ujg9pQ<@KE?3 zJRE)mdqNeKqoC#qnClO#MD&LfA-OMH4UdOc!4u)F@FaL2%!5zBf$()W7`_cphVQ{s z;BKV&PXCjwh@-vJ5K!Oj25z&jd@d<7-K&&cj?){hsD%K1oul))5#RY0j&z zlxlLTwafS3%+*v!U-z*(l~(H>KD)XpzU~HJcZ;u6`L%XG_jS9G@>Zwz(Ykk_uj}sX zj`DTK__~3%Q`J3FKOPZ^^Ed>Zm(!b((jyabQ;Hrmla1?8G@t}P>yY#EW1YG#?NZl!B3)$!w%IPK7Mg_9er8sxVe zs|Rv5j~};Sj@Ve8inf1Dtjdl;uFnE}6(?4|YkYd^j)E~KzhYzVDL3Yxh6=-CH|EsG zvoR;h#+;;7=MhX<-D9p~Vs6gH`#5!%ja`)DRHd33iMq|K@e202t7m7jRH!#jp)~_1 zCzI7Lr+R1GKJ(Vj$d-BBoSDG#9u`g{)zntC^@O+D_0Cv4+_Q*N)r-&P%(?VL>rwRw zd6j+S1I;aqdD`W659_uKG>%n{HSP|VyOpEl?mWp}QPfhD$Y&rTg zOkSi!2d5rfy)L2BESVb8zpzZ5hG8BIB&Q%Ib|Nn=?8kbt|KHL3P+r zIKODCZq!TOY;#k2);rm_$hWaiYc_U`=Wk}^Wb1D@tjPAfR%fe4uV32J+$mm%=LRj& z>uK52by#W^w>g!Em?$eKEaSznmg9C*Jj;2NhhjP7=^>*F%lN2h%eFf=w|$WA*0VpR zu#665%l6-*0g4IwLCSER{j&*t8<+DCjvbC;|t5^Ah&G)=D79~95?Zc3(NE*q{ZTUdR*&C zzV~H?W!bIS-y^R56yN^j!ZP~vE&KmAl~J?gr=s_6|I)%T`u{E4za_5yJm3B$g=LHb zTDE_BT>D|CvfpCWt+qy-KR0zACk2xe$_|lZEma#k$92r?5kH@zXHf=}7)ARK7g|)YXwa#!ple=Xj6@W%p zGFhlsknwcmm1a$ut@Vd_{w!Tb_*0^zI~-j7VFxcKo?cj{r-m(-r1W^U6DoU~q@Sw0 z%6NL<_<}NqcP+=xa(Z?qy@EkVavhn`=txm(j$9tkkrcN=$SW-SDBQ|zgyLDwbS)1r zEc;h$mQ&(c&WSBcw~}5eO9NWFiRb9-#l*y%5AnNM$*gr<+l}(tVs0&u=bC9|jv#%= zL(6cbu*^IwYpJJmSX?*M)bun3bG4k9oLrWrfHZf+=CObAJiFO#nT~BM`9H3mJUq5F zf+l%vxm|-)P?q0Xyq3guj3HDj1+X`EmWS5iIA8GQ$ph>ABcXM=>HKxM^KRmPGphd} zPgSp7XKsI8H0gStPeem&=|f~!e?2hc>Z^CN?D>A>B`N-(a`dj^RhlmxP(`k>4EBne^jZQM2QYGzd z>!!!A&is&`ajcDY3ij@JqonaUMI^LFr%d@1c?2T?v4#F%uU&b@#G4ejx+;#VJlQkq zjHl&Wvs%n{lsE2z8yYX$b*{}rre_)iqZKC}!ioBm=ZBV2&8<+NqY885kUq+lsJ+ta z?Tk}U`m$_!d1#~JN{PDBBct=9=J1rH!YM^)lzogQt5d7tzbBpWYe`Mhu`p zD=|aNn_OBpq-pA^^eLgO>D9H#k`sm`KezxZ%2FBX6Gk$u(|Y*smhXb;g7>*O;E!dV*Y`##imAysZA9L(~Mk`a{S1 zV*RzjN;5uIc55`g)HCkBve`PyL>%=GivU}*z!;4QP4Dv+uk5_dTA4U6WSS1V z%%}L~vpni@($0(CA_P9M=HP^Da!@2`ix)gYldr?z&JR>-W?~qH#>UJx-q!Xt*3Z89ZXP&c#6-JU8YCN*myoP`9qFN1Noy&rjT&Ei6De$b)0-358cA>H zS?PIS`pTCMN#P9^W3C)&ypgU)vaY<2WPQt`UwyH;dZsV&ri**OfAyvP8I4%GQ+??% zBpcE%ks`*GLm0zp4Mvu80n#sx^f1zmMjFd__YtIIrxfXTMw*2*&RnfQVzmi&e~V=8 zzV2WB49WVoJM#(F#!*N%WzO(*7b9I_T=^X7apT8vOsH7*ZbGtGKSi2t%nf0_=~5%z zi)8O|E7IjgcRKTMbB**EQjL*PnRvXyNX1B38tHi?8wc4;&1&{3%c($$8fhic)kf;h zO!j;u%|^P;NWVeS3{;l02#jj6 zH|9P-vMzVRQ!5>bWbF<`vgRiGx*L7zcmCBsB8@ffb>kWLCrHW8AxNl^`Xkx;uTJz=DCke)Wu`AB~>QZdqVMk+&k%1Bd@78z*!+Dc zN6&D#;ivUJx)-5tqUqbendX>gn!e36M>W$lbGc75m-{qxxlc2f*(N$BgngR1d{i@+ zk80-fQO#UFs+r42HFLRlzgXXUAKgsTr!kCYDfTq;*mjGCFCB%cqwZlRUF*vY1LscfEI^rx~}khFOpMSZ&4Yc!A~5 zQs_1AM7d!OckQ$mX?csBF{Dk`*^k?k7Fp=^nL2LC_2y3pm8YZTDx3@tS? zc}u$gtrmyFJ0DAHar?$1_wcUY~dnEza%^b(klsH3F(Q1uYvSF!V4h%ukh3GCb%5l0{;nbg&)J) zVG`lE6Yc@;f?eU=uoqkaPk{HpVenqas$l0nSPCD2YSABrgjqcj^Je!$P(9|~LiJ23 z1>xHuEou07kk&K&2Bhr_zYXb|h5rj_EzKL>w4Y%;5~a;FZ+z1dhL7i*mNR@lq&*Cm zK-w|$<~OZkSSw*^6T`oSw1{E7#X@@+);lbJf}cZL#c&sT?k~gca5+33u7G;i^UqLk zb*_Xr!q?!f@OAhIB+TJA;G0m7CsxCakb4O0doJ(5J>cKq;qYBp2-m{X;d^i@TnDd* zAHZASKj9;g{#p19_%EoH-5cOW_%YNQ-}P`0_z655eg?I|dlNhzZiZ9g7I+=}65b5| z1Ahy@hN~cP9exXLg?dNeTbRknVjI*-?+yv%JD3OyAbahEi(oRG0@z~w-VAvU zBK%vp3;YM%6>3)z)!@Xf8+z(y_4}iDA zF7Oq2Ap8sL3Rl7Iumg2>510&jn<>06WQ-T?3y*-u!Xx1b$lC&8)%EN%6utl+1Mh(B zDiFR09tWR<S-YJB<{qBr{|ACB1!-r5OoDO?JmRW{F@GN*CJR4pD&xJR_ zvG7?)nF!ay@$em33|SKEP)5QX;Y7GEoCN#A$xzSOrosZqBcSjcSPrj%zkqkbnea)- zWJg#{-9=EX*~M@Z{3Yy3`!gG=0lNZ*;g#@O$XgfTr(gs=3!|_W-T>c*H^TqIo8UHh z3sf_8C)^v}1y6u?!-4P~sMhHrcpiKh)p<8pN6l) zo#_3ng6Z%LsNT?D;W)S&mcqB-6v$gC;b$RrSGX4b4ZZ~5g`H_o*22BvKi~oIeOM0H z!Akf6oCW_0UxDl4U*JdZukhcnE91`%@L*U6kAU@XHrxm=ho8VJ;b-t2xCyR>pTiH} z7qB<2`WAQ${1Wzu|AF&h1Dp@Pg*U)$@K(r@`0$;u1N$gTq6w_y%^7t)r5KZ0GMIz8+j5*`8%g{Q;A z;23x~JPRHH%V1AT@!(~+A2v*9mb7gzz0 zfivM?SP2VY6+9DO0H?zX;f3%b7>2W84ZIls8uB(+cp+q=L3k0o6xPDa;Bpv-UFj%Z z4o`yBa4@Wali-!G1~T6mz7k#qZ-h~J8=MdChu6SG@LKpXybi8`H^cStSFj%520w?t zhTp*3VIuv|J75O96Lx}kL8@W%28n&QVivtJ`)-A#ROfcC(py8Pj=m)OHWxiSbiYR@ zDb@KSl6rb+&U3D0cTmxMgWW+zQmXSdSLvmp`@1Wp>it49r;+Atbfr}1zex1%FsCKu zl2Y})pP3Iy?sbvTE#t4GRP`{;+)&gr~b2~RPzZH z%~Yj1>GXLerK)FT{7!TBccoPIlGHQCTrXEjRSRk6)Y8-@8j0=%JzSd)sHcsTsv61F zo#5-v^L3P8*Bm+9HAkLybxV9*t*`sY*VXyDUFrE+e|K}GRA+>*8|CZf`MRrp-6~(V z+SmQh*KPB4Y4m=rAKF<-61&Lwx&wUOVZQE2U#GX!t=*G+-KoBAgs&_1b!EQJf0Ij3 zfvVW1I6azT9&M*b>}yH&U813VdDxR($i|OZJnPaEwsbvv^42J4yN_^Apg`P2z~jG2 zcPdx&_)+Vb;~}Cq_#)jaX!ByG@nnbIs56+~R=N%Lh%=4H7Tp78PM9=lJ71;KT#l-l zDw1Kk=5jQVL^sFrCVO;F^Xzot$7kG_iAw9F8>r%EH@=f*U(Pg7a>2N%RV9vn7tg#h zI)n?}p?g`#kI{&8ysKoJ74tG487xdM&B=svj3HdOE8HFG-m{>>sRstOI+SFqLrJy@ zvN}~kR=0zb_7)ueZb|zZK_A>o(tg`U(hi(eSz@y^)FQTE8m2`t6UqJ(Br zLeuqR+IuRSFMgfrl-nbIDIH`t-Tz4y z*3AT1VfPN*k4h>Pl+(>sPTt8TN{H^CD|mCWRuM5vN*T8_(|5`hfT88 z1oPBZl5EfRCD~7|5Vj}T=D5jL?Izn?H`!E|*<_PslTA{p_GHlPB)V)@3cT&?ErbXY zrIoBK(gKowy+talDKYKj(hm|Tdlbd=w$e36&frUy`S@MSg>nq$^7yq>DAjk(k4a(K zQK2m4cToFMcyM{u_^Cg3MLQs-qE#yA@$(MdmkK8x7^knRd?&>g&UYb$KxZxN0sjGY z|L;K+R%VOcRF`B^T~ew^YpdIrbE^v!*1*D`mQy{!rg~a?Ql0tr@15#zaYw^jN%d~+ zOZAiaWSslmm>;cm&5KEN(|O9{{=6ezsy|PvDu=%amFldTHmSZ0D%D?tO7-6m*S4%n zvZ*e~rn=QB)va!OQ{64=yR|3PEAZv}mi2hGd9bYaXkV%~ezE6AOZ2Wy61_d;d?P8U z6yF4u;-5p6^UY8x&dj(;ah?XbDK5#TxFlP~NCA%d@QYEYe!fbQ*pCjWe%TeIS9bOOHZG zEjQ((xH_1h29-LpiIdJhN{RZ1lq(&#D+Ec{8B~_KX z6Wk)6=oaxLw}^Lii#SUH+#)W?rn)5Cj9ZBC(B(*I(dLXpL%eXY zXz7LnHfM}U(sdcg&o0gAx#I4xmJPo6;70S>Kh&A>h7%dwxgpl+`e{wVazQU+ZF9z% zCVa-bmaJ2YZmaJZ47)U*bDJ~HbAxN_FZ}@TcWG$SjveaRoj-b)25+V|$qV89;T;>i zajR7lL&oIf6q>t^Z50C^WoxYilbM5%9wr{MoU@QlGP;?*?lz>ujP7?xtbV}8j~&^p4#3UEW>qT?_uQR%r^aS=vF9t){is=0x8f03e;^g7?y);m+#C!K zhOEO6_lJCuBdjU=!{9V{1gwTV;f?S}cr)w;?}JCd7hxaxCS+YpSk+iRxE}V0354S~ zsOI;0cn~}R9tTf?itjwAIMcHzTf8ON;w{Neomrh`W30{;@AJ*3Y1wbATe>d6o7d!} zsjbzsw>oX^clH`?F-5~`oxE$thXvhj$?Nyw4Hfh575Xi_0H<#b7Hz72u|uS26R)b| zhO#rNk1%!{*po^%fpWj9mlYL{_v}Jh`PpBH}7aUuj)B$@=-N*dFlP@wd%_BwX zn1!li7V;X^(mGSeye6A$%N1I%IpeI*0yfXUaH?0`@N! z-87&Vuuq0@;){5dPduko-PHGOdVA7YcT5HLMaFsde!NPENQfk*);+?$3Qg*w-IytR zL)(XM_3E4y&*4O~-A(q=4-@HGXBVjEX`!Rdhvs;j%}@1cXrnu!O{s9-Ea-;x5i!n+ zd?X$(BPpj(MwjKxN3wO+3M5tpqI)07)>$1nx4L7HY@Kx~5-YNBrNF;>t*^V)*Rg8P z?G)(Qr>&`W#-8e}_)kpq6!d)jR=L!%Yf95POJNuhGYpU&mFL~zf!kMSHFgos$ALV4 zIsAU0imUmvvBv2ge}q7*InAugHH)M2z-L3_``5>PD6oIO|>gVCo>n<#4E7F!Nzo$lAQ{Nw5H(3`fGt z;b{0PcshIto&leQV_+>j6Mh5FhI^8B=fFcCYy858!Si4qJRgpS_En_NlL#%1&;pL!biJaueN;t9ksq>>m5yLq0I7eA(NcHB3W#5O0vl*$&PufZePx=&Lo|tHTX6{ zHs3~QYhojTo?c>$^{rdGb|X0IU1agtueBsD;_6_2UJ=cvNCtahE4dc?;81pS+o$o{ ztDQ-#kCy*m&1`fbT#a2Y&1^_xyI`A&f^OR^IiR;Qko)dfmwJDyLx@qv9jL4vnE!kvL9S!OHtmdo@R z1UQf1_LOPaQGyrn+j~0_ys`bt!=`>Z{?FR4F68CF#HDRw@=O@)AKjM{U)`dSeD@*mV!{z;B$;u= z-?$NT;czyTK6Gi!SoLuC(lf-PGv!70f!q>FPiQ_&t4yY^FlN>*^+FW) z#@I@lupOS#S}^d^sh{oMRdAx5@;yf1 zsV(*fw|n%h(N_G?_a|J*C1WP*dn?W$BWd*A$4L1|R#)Wf{)A*lbWPaik6 zu}YJ#dHmE%ZrXjxbUOL3Fz;brV(x@SX7t!}54${7hB8rUdFmeKZDeWWSQma+V~Of+ zXmn#$Mq?MLN~eW~8Yl1JwrRVfQ#v>s4>1uQ zJ0v%rV}NdPd2!X$5@X66l4Hsnl$&a_7xC&HicdA38g+Mb^%XRZisOr+M&-YRx;`6f zRDLPcsGRgNqw>q4-UFBmpMqCFJwUw@{sYc~AHoRy0!HC}_;ocr63&Oc;dO8jWH*v< zIlK{SbbbrG7TyZACg?W!6#O+*^>{mc4c-Yqg?B-R`??z@z9DEQC zfeYbT@F93Dd>Gyie+!k*9)ZdM_u{tgB1*E&hNM(y0)JJ~(#-ceB&C}DJFK~zxN6O9 zUkAb)E3hqa+r7peF;cUSlaTis-KRgrEP~k{BF7soVDAn z_8N6xvAxD;=pX1_pM&Z@uzil{KfC~S|Fuvz@M{v(W&}w#BS^CS2dh*6!Ri8u9+=A6 zsjWmk1dm!C_Vwdx9zU<{jGf9+?;y7BlpWn(FMfNpFDZ+r7nhVynqE@;Bd2CgOlsPC zjQj8o-J6m#kzY4g`3sUu_d65no_UklB;U<`@=3DECy8$t@z?5dT*+N^st20p&5S*p zznM{&gjpuq^^J;W5ZOFBQnZyF9}}5u-=MItJ)F0TW!Ew(%pc9o&#R<<@n+-G`_$Gg z<|^~+*z_MTVC?G5tI-!egJE^%5*zpOVizypFwY-(9V9w8RfaXqPoHpp(l9R!L8EVc z(A1>PW6UOJTN*VS!_li;>WF>p_zt>3F`Wq6QN}nF z?$%a8D4$whF>Tz89sRt~pMobG(+IuYr$mi>xtU~7QFp=|Zi_A>YSA?dqFpZBRXvJD z@6dgz5M=UG9?-#S_ofj18){V#A6^fu5AreW4mUy-o=@OV_$eF#`7pcLO5$@^!TA^P zZny>h8GZ@Bf?vUX@b^Ek2joNUVa4m$P-${KvaKs6*}^6%Ri6Vic_K|80yL7XKdm_x zMQhH~pT!hF_gg_Kf%#i=Q)cE+#ZkDuJJskZ(yU!3;J2bloi>D`I%FS8nP3MGNT}}BPv*2zackt$IP~>u^R}7_GXN`L1LKDYO_MN z!@VO?v>+O~BR90E3V#>m=5MKN%jteN?L~$vvCCD3YAs-sofmW3bVpTEq1~tLr^o7{4o7;<(s8}sQ`hog@l5YZ zdVN1P-|#e?oRz7O{OAt6AsCo#&T@^+=eobhqyz6d$l8xZLc1SWUroxWUuD?SKmXj>qmI^-}S9GjkEgo@t?)=?zm|j zatMWv&nO1LCl^bxc~VS8E<38od0*Yp{ss1kKN=i7u5z5I#MJ`j@$1IVYc&ve#G(;> z$W}eFF8qq|uX5Im67#a6YFv#3Z68&iw#{)hGB&kj`ozjI#%yVw6sSbXz0{^vXk5st z4X(0dTZQ0OOCzy6m>-ANSjf-jTOz5tP+iTTN4MJ3s;dmz{iXD@*PM={Qf}P2>Nrfi zghdXyz8+I@y_}{f+5EIy(p%P5e>bF_)`Hm$Deyw(MXoV9rZiNebvVDNuKquaxRkE{ zg{mw62lcGhdaY3VJdtDronYE9VX-V zE>IEE2_6r3gPMid9i9!@6Vt4n=?v9R+!Ou*W<({)J>b*uV5qo04895vhwS~~905OqJt2E&I7h+`#NSbnJuI9)up8_P z`@?=P1lf}&tTJ*eRF>Dc!Zym1Y@;kG)j5H`D$8lk09Q(N&O);0&U2+yv$v+zUFqu- z16H@h*Zs}c{lnL(#Jg&UymzYZ!} zT}=$zY$eHND@k@Knbl=+Zgu{+c*i8K-W&RE$@>?A9*SvMg2}57YS|-x%koovb*nwe z`v;OuS@?0N^6uJ3^74+>k39R)^o^bNBy9?#FD32HP)VBxm9*(lNxLgl(q=#%drRAEN}n-S z8RBf>Mc_#OR(E%Jttn+N$hP!b`JxuvX)ppbYf6*Mno`Dp*)vCAgoU820j-{u7<1xG9oae~lgUw6aTwd4$vW*@ngil&9h01H@aF zGakv#pv*+FGbk4!sq>fYT*+VC1^)<1o%Cc!OIz*Lul=ifm}BQnw2aY~pOCLh!kl8f z8$a(jovULw@!G-RGzP&g_z_%>T|6W^%4s8Dr?yK{(-$7)S)S{mvY~tIh^~0cTZA;e z@Th*Q_h`k=x@dDTdjw`(%<@O#>ldcCtT`BUe5cvovij$8ahmO}d+R8*ld4uhnu*F< z>!kUs_)=G3}78Z)C=O%`eLx!5)iO8nMQ25KiH09zQQFW4m*D zMio1flpQ5O9>1hEva$bGpA74#;|I*X!8K2@mA}Fr+im-deN1#Oo1n7OW~l7+1ytq# zCCr0gK?S>-n6$|%$tJ6$RHwncn&xbErS>G@cI{MjSBuH0Had@=R~yA9V_V&}o!XI% zKla+D#=59+(ex1R**oI(%E!|kQ}RxLO5PHvdH+kPRPwSrnMvMnppy4n zsN`jJqe0@><=`UAM-r*N*MF*@|pD2^6pErnh5S?z-8l zEp^>&8Tx)*w7^cs9`5sdnG-=p)U(pt;UJK}ZS zj;3p*(t09PWt<09S_eRN-S}pY>AIZ^)pa`!PK6_21uTT>x{ZYDx)njyd}ly)-OhyS zx}6Qxbvp-U!tWwMxtF@hyy0x^v!P};AAU-X?_4utr0ax?*wbb})#1}iLmmQ_W zP_d2t+~hUVJS^y^Ly_ekJ8~E@05@Cf$0_Ww{kR%xc-;@5QZ#vM9#r0nK(z!>sC&H{ zD%g5+$)>R+o5qq-P4CU>l$Wfo?eyHPe%w7c96u@BYUtk}=tE+vCfU)g59XKJ&ZPX2 z8~ePZrYYR6#-2_2O%h)ZRejtDmBcqeCGjm#aqugsB#scvHi;$KB$i~~#kaa_&aKWQ zae-aAymVcn_einbuj=laXl8L(*m8O#|FP=Xk9EkH`y#F*C1lLKmGB@X^3m4U6Fh^X ztG~{YSmVxG3w`cK=lXY%Np*L(Nn?b;-*SZ3nni;PZ5*VVs+#53Ghr%krhcWZMJ ziA5=OLxX`yX(cdx4b}$c@T{fy&#Ibvne~5fPe|&X=H8j#(vqL*uQM-WX+i@U^ZjyO zVh-Fe>xBY-Ao6+5tO50F+T%<8=oX#bqnWdjtU2|6YmcjShmeAP*ngn-S@M4pKWDZW zKYE$mh?sEmS1c!_L{uw>@9K9#E$Ld9f2hj z8Bi+pKCTwkIyHRPrtw{qe_a`C-kQ9Ci$;E zSK@B@6i0(__4>lZk9R0u)H3V2vwA~1?oG7S_JdHXeHX$m@L_lY{4G?q{d+hK{sGQ{ zPrw`DBKTYQBzzq{1=S4x5q=4uh5v=m!DRe=0p`G3cr;uJ&x9|+^WdMLa@<<45^WbV&1mA+Q;M?$0_zt`Z{tey- z{|=vp@51-tTFAF2ocH1X;5w-1(;vX&;6LHo*xu4)m)ha4&%~lmN zZJ}zV1geKK5vqq%2D`$^P(@`5RFbP|v`H?>Cb=X#ondvF&ak?+lXri{A#G16ABWGk z;%fY~)jj6%^Xih=nMm~pV)sm!9o_c;e!L9g9xYU-{@c`fnA1I4LrHc*+3L2s=63jm zvRyPx8_?|WR$Bv+wu)$n_9WwvJPOh3;6UoOYY@U0$4v763aW_S29>t(h6fckbl9U4R!ZDB4(YWX=) z1y}R;5l5Ad(Wak{L&f(nZ`~hi;?@~O5n|5$Ap4Xo? zaAx10uzO48lu2R!XmvsC+Y|Lw^zB*N-RG53c8{vp_^!G(0YxcWE0yy6UuyE$7FG*q zJY6_G_r=+~6rrmu+D@roWk&|)(#RI4ue8XZ$)I49`%tnsL9>H`fk<{xpvQB{CCSd| z{I!FE=a6hAwGwG8krThw(W`R>{JiWL+lkM>X6%%%>?k?k=9kc(>{(D!VLS7VwyTtP zdHmF$QtG#DLEHzCq>7NUAnx29umdh*R?cfDPQWPiH*f}^th zJU7&W;$tDdUHM(YPscq}V~V2(p|bo#P+9(As3}`Myco`fzk>tdqwrk#7#s&5hw8*X z0rf`2BDfqr3I7V8f{OpAp(1fk2d}!6WQ&NTRI>(GiInCX#<`?av&EG)HyWKa*LD@U zT~l>;<8b^e*H#PpIzeo0A!JHhS?(vepMg4$tJlZ+d^8MT1czg!O43k4u7}gZL0&6+@9q9kvl-K8%MM! zd3%yUMDQ-iyQEEqUK0 z=&=oka=UI_x0lvd@-}~wJ`Zd9>G**fjOJ55c~tn@+sD0~q|<%g0ab$Uf=c4Mp_2F> zs5rP6>PD_2mTeMCvPmq-PPAK{X3?x}2Pg5barnC>aa$F1Vp~c46MS{MJtcSrZLN~` z6{zHW6)JgGLM88Cppy4>sN}tz7`DkP$tJHPTY{}lCD`gr@}6U!qtH2=w-^U%Ua7L* zWvg3^u@<|t8hn_Z>M8`SJ~eNc@p`b7L(=Dbpx$^!jpqJLuh+P}^n-*z&v#Sx>`iU2 zfIZ6dXbDc4_xv{TUSFSD_Mcl{pUzHn>q~hqp))$R>rMandff+I;Qd*Gs^zO2BB{LH zXSQJ75Y69cwqV^@zl=B6^mbjw)5iSBvSG%j=3k#P?*ni0pE1?EKS#6cq zs_~ObiyigdyE@;RBUj0pW;)+@XviI_e%u^-ftAtZMPB-YK(_@hQZEcPMVuIoqG#R#(|; zCtLRWLZ#TzP_7&U^-!ii>DC&FAf3i846umU;|UJ3`nxiAD5z?0#Fa0q+?4uyY& z!{GbyH26O_0)7Jv;K78i5cY*5;W2PDoCu5HGHNvX~{t||u7ob|4h>ZEbSn$vjEnp0l4y7PUVspIslxW&4x z9113_KqK!DhZ zUbW8EndUwk_igYOpXsAy#88Jz4-438dK)~i@`KOchuB-5i+J@I#kGrSH~_T9kAimh2|YR?-3_TVHlTvh`(mq&+a3?C1fN ztuH4bsea5dJE>XeO<&i5WamM4B5hlq2g&BDCMLW}Ep{H{6RyR6SWk9Thw4q&-P@=` zM^}uSKC`r>qO@xI1Z@;$YSSG!6XMNts3Y6B(}QL$>^legkhwhqb*rl1E@-E7+jbF~ z8mT646*$D7cj$f>arlt_1?+e@C&#vRDHM~Od@Ri!@c1FFb8&l$HN2RAlMDgfCs@@ zusggD_JF^G2Se3+hd^!PbST^v(uRhWu7^YA3GFpt>qAMlK9ppiHYiWpM(Bx0P8%rB6K zH=DmkpF1$Ks#DZeD+IZPS(WUnm=aAXEYq!;KgLnBv&IJLaG1@BjZN@csnyXt1=I5`|SSYw~xSWCuUDx!EC$?9kl} z$cF@EO^X3p;|IhGqQ<;cGbSf#|C9Oo3tP0gFko|`wxU@T$zLsN8@A8dib(#-`Z3BA z@^4j({;l%;li7`!UD2Z16~0-0iQSEqr0Ry0szFU|^Ju!$nN{rS!&3s*2X^DMlQ|`4 zIrW`6-OZftqSIvD;=@NCP4x2tB;R>*v|fu#@wRxu@Z##(i=C>SNDW@*BMUCd4P{pG zvTdU!I<)!_bv70kdlu8{9;0Tgp1o-2jG8~=vqF_oQ;W1bbRU1sLdN^dLdN@|q5E<} zSsC+fCcY1sqFOGAu$VQ6R){9exhxNFl!Me2soO?>DN>-#-W+CsA zQS-9VX6}|zvjk~*XaRrC{Vg!}w;&o?VD9fO)X3ibA=vwq5Y3v?rSb%rfO-7BEtsRC zp;fu25zDAik20FSI@dI%88w|arRG{gMYkw-X+}*4&edM7BTf9v|R<@Zd?im z)68tuMbK8yUdH623iRZJ$!_<-J~MCHXNZJWM2c3%2IGefb)C{LP|E9@^Y_;a>B%K4vp~+?;ie{ngt_K~AZX#DT(n)qM z;IExaxED#Ak0m>rle1T!@~`&51%2u%**P4^Ud=_ac5g!3#az{VgT1=YzxoQ2=H;>+ zjiRl&{gAA=!;!2j`AFr)-0yUiA0N?^L@1J-rAXG?-;vHT=C&YNmye-V&_df}Cl|@u z(1uLb#snm5V>Xhtai_0)8fm(5kL9?oxleuFF0>BTZVx0IzGHpeC|@@gX^L@$bqda2 zCM?hUI-ZL-7n!TPB<`9^p<%TyvoVZ2KeGf$al`#0+51?9WbcFh1zdA?B3X0yB3W~P zK(gjuL9$`l;7iO_m>mPMoV1<1t2s!TDa~?v`Z{K5oeHBn*VoPWr4v%T5S)r+a|9oe zazii{$%cR}uH6va<4aE>*;%OPklwN{{ugPWP`~iS&?31+q)CrykdGRby?9igbL9p*@($ zlG)GsolfrU=bR!h{X=#%LvtxSv~k96?C7B%vqbK|?98W){u=0#$*JN=71q?AC>Nv5!PNMw(y^80V@fV!*S1Gj&POJR1p`!@GW}d+xdafeoN<;I`L*PB| zF!&ri0xpAnp!(~5;Xv3A4u!|TG4Ob(TIWPKAD#psg#+PJa4^*PAq4dx{bcwKJO!#B zIRq-N4TEZzPlfs@#cA+3SOB%re<9TNizDGVa1@*XN5d+37Mugmfe*lQ;R<*@)GLnE zvF5dwV)z;7B~Y)oOoVz#s|@Z8C&Rtq6u3W}1`mbhP}^Nrz%lS5I2q1@7r~3+TzCmo zNeILH;2iikyc|9ctKloK2J*^{a|Nt}SHdshJgCYx0u$iXFbmFy2f}M$Pk0^7gR~Rj z)8Gy8EO;xN1%C}MgSW$Z@D9k@f9FofVsYm#$f9uPZukJa2eNw7xflK(-Ul`B@i6=w z{2hEB{vQ4dJ_bL9e}Gx!&Bvh%^;7U;J ze4VY3Ph>jZz*5x|X}Aj$;A1cmE`dpK4NQjb!<}J0Ood;18#%|!v=ULR2AA2ro$uQ{;(H39QKC& zVIN3YcltugrgJnr4;}+4J5E116&?pKg}Lx*cswL;IwwN%lyed!k2radG8hNfnFkTFxc0aRMdZ zn#*w|KJV%4M*6y6`nt<}onD%=b{G1(*L>X@zV1_Bx7pWy>+2FI>o$CPQ`@??o3B&N zV|54mx}Lu7C|`G?uN&y=PV;pmecgG!ZoIFX?&~Ui-KDUlM_Yc7r& zH+@ni?v#~Gn37XIJ%+*K@-*wQ8mfI{P@cWOPJTWlni%&a{$g+?ta=?xIQ4s;1d^C?za8 z>a*pPTr{Diq`0Km89E}T#Kc&$J97q9R+da7td-?CCJ;HM&y+KDT*btaik!-_ano~p zU39X02LGid6#nKLI%X!NURbLSN^rmt)7$n$kn)%c+&4-VXRoH!3AWxlz)9KN71 zqog=T_cb$TdU<8egsKX4VTtLPRWoMry%=33KU9`Ynwe8Rqr|Q??HRnciW0iPIKe1D zN!OSwMPH(7iLcB=^QlkxSUZXB~#p38#iG>3HR(}G~co@H;5RLBXYtJrlJsnhDMF8a-Urs4DIqaa~o{nzLhMlni%ME%ur;nRjO?0oK^^$E zj-JIOz4Q8HQ$c6OEQf zY-ys=^P7G7HTv}r&iXgeBoe^|O*Dt1DQluBL8Iw0>rT(gl8Y+4O*08eKZ+Qes=xf^ zzI61#Hl2r8zg3JPa0Jto-V(Od*{2_4j*gC8x~As3Z(W6ppkFeZm~bdvlpaXmKE1Z5 z_3NsKJ8z1y705pr$JTv#d4g+bC*#+js~+1u##Z3I=%-*yTbmw$G;r#>L@dE|CYE-X z8)GZr7rhH?UBa#OaSiQk{OY*k>?dMu1^l9Kfvs-*l@HgPcAo3ksn7l=E5=s9FLgx{ z6B_udnA4GFr1G_E&o`(3pI{v731VWxf&7(UZxtMPn3W0+%e%<8V1!_L?TRKbVJ&|> zzjiUw(T|_AEXG#gzO+6gG2xDV7*ZhhUfw`9k*_a}8!x8F}4EfrKF@r3i!3V@#~z=&Q#z7N6@d%=o1sP0897v=cUiMaaeQG zaW4m~AO`PC!}i34yntVwjbDpDyZ`VQTY>c2)7bL-dVj|65asJtHM>a}ID&pMFtG`we_f*-m!j-*);c<7+Zn#QnqR8*FMItv48*6E8MQ-pkMnn@vH0O>8y3r zeT{hcy;kz!{>D}?AMR)TI^^Zqn!*YkLBCWpHOArF1<#JNel7a+y;kyJjj2}| z4c|mt$%kExtx^0{dR@Hq$(O8O7yP+$If}p$Os@mcH!WXXj9+tJc;e}R6~y3uDJdK8 z>!lm(Zn1tHdFkE@V{8S|OZ8{d^y+H-`o#nHe-vXYkmnC-;@8#zkK|gvE|2aTo1+4L zbvL$xad?pNtM{}gR<`VyTCKzcP1C0%9oY9jq>}Q+-=W ziug+)o#BU_AF+Nta&d;~k2G2f`b9?pTfy`?!uU1qoL|jov>_?zmwI!F31{$EeqELH zKUyu_*CRJ{y%7YCpkKYvH_eAf8ov$>tvfGZ1u^JXZ)=Oc^6QwyeHK{1?poPUiz09Y z{nGSnQ@?r}zy7lS)LR2q5QBcH`f4m+d++`Wwn@}|b(=ftS24B%`A`jFQ@{EcztSE& z>zx=|f%0{(JCe&if%ZEoBzw!p{dP$6}fM5NL zEib)J?z?ln^=rSJrPRW~BN&JMjjdq2+|T%x{Hq6490Er$4mIK3nCHLT?eaO+ugrJO zZlzt;1~T+219|>fv;5u z2^s--ahPlTI{%dP^#Lo0LBG^TPE64BvkKvR4Wl2oetn#9w7MdJBk0$O=;`-j%WFbT zFn(S1?#H(UtRM#cI?32--e-HgXqk#$;0XGahrVe(JjwXgq3ngH0#*=%eho0Tn)`Lc z($2B9O&}i*Z06Sh<5yOXOD4DM*Ps^snmy{>*J5l1{2FX*1?#9m#;?_@=c||pj^KTT z&?hEn&)GDjeLgyCj7_iZ9VV+d1dd=Fo{T;*p;w@Mg^XYGC!Y3jzzSl}uTzXI{Z;PU zaM7>cv(ods%vV<=a0LAtflwk!dHfy6B0hDIYJvBiDgbzE@NaTygi6chzVR8Vwq246u@L2yLH8JuCp?|G`~ zR^MI|NB{UPzwlI_I(6#QermfnwH!gr@vB<6YSul!(GmnsYg|qdDz?08P6%8d70Qx_ z6GSL$TXu@LYLD988WqaYZ!ng4_Wbs#i@%5pWr@ob6W2r$*Z3_Re~k)diOVfQ#g^BQ zho9IH70MEqM})GLms`ZuzjDvIs8E);ydsnj|FgUXIgWowx|$Dul3QbGp8}|-? z>!TZMXUcR9+`KZ{`m)4TCqiwu)Oo*%tLU2z%PbMWX^o4PM!dRl-K`g19TmzF*JKgO zS`Pyvu9JS)H7_cZB@a1r!6L%{EHB>^WnW8IeV~;U!17qz7aBZ5S=-kX5!YS!|7(OL z2%Oe*O%tJF%WKFpZ_bJeWl7g*B9t{<(?ncHURM^~V_VX7x(L;R|B?Ad-=AMwD$|wm zpSelOYq|(!?GH~Eam{&oBAcG&v8L+`(9=>s!T-JS*X&&WjEw7=3#!0OUQ4=I0pg`=&`pnRO&r&35z5+@XNkBLKJ!|1?X|>J zpCGPXPo3DFIIcM&lr>%TBCaoP`XY(FF;|4zs!BPKGwOO-H&%4M6xirT>d?mhfIEn)_O>zB63`A5OIBS z-H^Rep)7fLwg@#5|Fho+uYJ9B-A7GPp)BcY6rrr;b+(9W$xZ1?qC#2XS|CF4xCm>c z>vk6`YsQ)rnES`5P?oqBicsq^usN)l7Kpg^*)H8287hcQkpE zS(?JFQa-&j zUgGg;%F~K6NmD*jlv$ecZ$+_b3a;sjr%Y2$RTR6X@MtZc(=}zWqPR8XenoL;${UI@ zUQ@O!N`t0kp{L+8S5rnP%0Nxw(Oo{{G-Z*Z9H=RGE6PYsc~enFY06GTIYCqKU0?B> zs3|8Y%1}+2t|&)pN~fZfXv(9Ca)hRQpeRL}vR_e-)|6qHGWKIM#jPl%nu4QX;u)eT zI8-H`gER%lnZ$Frrr-dPcn;N+1JRH3IYm>76{U}+I26SI1-)@_c3V?>1DBBSNXncj z%5aybXj~z#UJv2k4MsFWP_TeBID%4CghO!IlBc)eDT3Tpkrd1W()&g5U|w4pK^X_0 zx(La|i2cV1o??vf-UF<1ilNUVkrXUDr9olpEcGcKi{pI}loCi@5lMk$9uN+PDuLv) zBPo#lMkEE256`oP8V$+kM^Yg9gGdS_kLn*03X-pgq(Jhv2udj=j~$>x&73iNc+t2q zyAIYAlvmL>tZ+u;SSey(rbAhG$(vZFsmO5g{Q34D-#644tVj`Xma0Dtl^U_z-V91w zs=0LV!l!?~KAD`Gl^lkOlyi=da~S^TQ}|Wy`;y6dPsw4ZNI5N_q@^B8A$Z0g@Xmje z$;m)H<-<^sa#}%2OGUwm=i=%AnwLyYnUcd$k#gEVNlP6m#TdRPS3aFg&iP6XLq*D= zAsv=eHLMk*k2YzP^e{ZFAr6^XF?NhoK_nECL0)|3V6C?;(|6 zB-1AkwUQ4*Manr3lyE(K@8xPwGC3|KhoK_n(Ava`2ma^t#M|@kO(y3uC5NFReij>2p@~}RqJ$%w>$>fYw z1tF*})@l}ZjnMat?-)({_tij=bql(bY+&ewxx+@4I%XeEcCQjOE`t4v;q zDlaQ4E90rjDZENnX`U#qn=!W%M|8`}$CZzZVRhj+vF41=5+g0<(>Sr=V(zrXvcy%? z&(B2Y7k2kB5Z^x^{%~Ut1K}&(`a|743}SC;QeiyMf{@$Gw)SR!TT4T8s}cfnIN{JuGaFGT zs#F>qnZY>XE`wL`768*!q&OljvdTcBUb$5Th;8<$pi)+3DWKbm>1Y!0*;;2cG$ing zdS94GMNC8$=eO01MszO;1c_RlOp2_~$v7}DB=Z&p${b0c0lm7-Fzfh} zK#n=yB=C+NUlOp%@g#w#>hhB{AjQ(7cBFW_Yfg%-+g4@riEl^6uXk3KWMyXZb=!&* zW0K;vaP%a`M%0EL@O4{Z%oI>w(uSrO%?6dc|Uch7;LS_buHYR3(n%`j<**yo!wAhKH4ZN3);(rg%z&y%9h z^Vq9vCYsU34au8nkpVsB6RWE$9bUT`Zjrnt7!hGiu*&N4iS~)rZf}jdT;3mqR?LX9 z(x!!FrMM_(YFR2T5$Yt`UFEJSx6A98;5B39CBm|C<}JdqQhAL~DPRp~w^h|tJDp~@ zIqF6sI8jcC!gg{#_ARj#fbn&rd`dS#`& zd019zUOkKmin5;Qa@#8^oR#HHFPL~Iv8*&sMq10-;V5_b9JZ>7K2N#2t%!_klHm}Q zxUg7ODsL>pXP(Z9iizb;m&aM*sBy)OPvpMH5^H>RM|sTzo6CzB%?#8U${UQ4MQ)95 zqJ4t5dO}T1xP%qiVJn|d>GQd2?4ELY-4U5C?mL#1iVKfrrML}c}c5l)D@g z-5!t28<{KOrXvI6s-vuAvO(yOc4xV-(pFV5(OX_N++NjMR#H~V%Z|D{^mRwGU}rak z16P+<`Fu97-R=vA#^pw(CNDvTL#dm$Wu@WZHRbl28hee+?fzeaqXJdbRCp(NJeJVB zGO42HrAgJOn6%ktqa*8|z1-_@)YvP0?s8nI)R`nNRYoz}Cze-Lc&n;?_R4Z`+tRGm zt!1U+zGYddxNs>O3a(s+6X`6U;HdFAtE^h;EMi?kt(7%G_f_Sv@-1DZ=p;d!)7aMD z%2`+tIonuX81QM3)!3<4tgP2bv37$OU*mlf=E^Gxd@^$*4tJ5%Rt2)TVoU;_awE4w z9loiP6nQc8VhXi9g3oeElwRxb_fZUAVY&4P5czn$;qE5G__CS5_%cLnn&$e>vL5;& z{Z{ae!H(3s+)cv6UE%Uv=w~^4L;AZ|s~drxqJMCA1`pT%Ai2=AIs#Em~b2o_gfI?{VHcy7O3 zuqD*5ANaO{=NqmDbNa#f3^N!?uBZ0gNkd76ba9Q#r$;Umk zc>0Y+Mmz$ZZJQ-uRswl1LZ0_y)F*63@kvx)Y9KEJo)54b%qNjNep=l2e|X>8Hpz#b zm$>>32jAJB;oGlYNWMh%c@W~=37((7l6;IeUV8U|Z@~_{OJ`SddDnsORq*)!F8K~l zAg>wyN!_=&81;kXI~owLd=Kx1_k;Y1H%9$S@*SB#UIFUM-~NqvvZNxz@f6`Np1k3p zf5FOcdE%wl088IqDMsJkk{4>km3J)Y;}wr7GLgJ`@YVN8F7F5kxkd4GC+|h@y_k_) z-cb;;Tk&)!uYcbZykjc4Jf^o&@pLC|A@~+%C6{*+gxsrmx|8=;@clJAxxC{cB%7U< zQ)D7}*MRSuoaFL`Lda^x)1AD}!1q~ha(TxRm&bO!UhyQ8$M*IE_Y>TyvA&E}Jl)AV9ek%BmRugwyG-$PC+{inJ#~0; zdDQQ7#nYX<%z_jnb7*pTtS=`ko@Daaep|t}XjpQ2qafrF#nYX|Zu2p6=xR7ksHFCYQ(Z7_E4^lXnjI+Q%lBHv~c+Ry@h%(TsczeD97+E)P>iyx=g! zcou(r*pA}0kKOS83Opa2Ecp`6x5^NH)F~-OBmVgC|9JAs;c+f_o;y|YC2GH=2)_e7 zhn6LmhoRRv8a#Fi#*;`M=g;ln$+k(pH2jXI-vjVI7Ci4(NIp!z;?9paROZ`LjFL*p zmuUTEGrT*&b9z;Bc`V=i6c3!@iKidU=9j^@zFNvllwOX%{{>HJjpXD1@#Gc2qYOMj zXL5NgkL$qmrs7K`Zv%MtOh_(||KrJ9 z1CPIe=Z=8nOSE2cFV-XaPEIi%nJW2)CXjb;I_4kKQj8nUlzfTS4>llU7oU}4xaUc} z6B5W9jSk?5`6?OGeDU({5ESTj?HKpZlYB!H$m6@B|9O6jar7mUkM%5`yuoN- z<1S4xCUr@^WcnQ)LVLSW@+H#mCB$>n%_)ZO7RkqY6|X#AhWE|jsl83|Vx-Kl?vZjI{qI*N^L>cl```>C8F2P$Yr8(U3O;A6oHdNxnq-@x9+4W~Ul0eBnBt zLlVeqhP*5LryBp_jcGiI@{jKazY%Y>T5!1JOH`llg}mDeQjKv(Czm$@4eWyvsm8y{ zBp;Uik!e%@icjDFO4$zzM^7wE00(m@%#>4z z68Mbn0Uzgsb9=zYc6eP6_>KbK6FuM?0lp7=z{mOEe|o^jc#oageZG`~&lkg29#g(- z|JTOw#nyw7;9J`RKK6It_kfT4fkS3>pAP2B(LLZB1HQT*@Nt9u${4=be4&2-7sD5u zFX*0)uY179esNC^_zJ-H&mQnmzXSO$56cs;ebC-Jq6d7r;4AC_AKP1b5BR*`YmMQH z&1c%nuf_1i=CccY|Bm5{l}Enn`sjR#cW|%MU%^U7;TE zvEO*O2YlS;+|&a;wxd+OPt@|nYi||s&xzrStq0_r)B`?_A2-DC#pWN!g_nB3=L6ri z7`|BjIA1Gj=svx}!B^7*zG2{N>;d0I@Le6l7pouZ!N)OtvH8Mz#E(7T8vwri`Q4|t z6MRR<@WtxKe)117e6jkG?~@+zjRs#X&W~B2c=eC{Rb>zP>UzM(@}1oSKK4UPd%%Zj zkMT$k__)6Lcnn``K9ld+9`G?=R>tu8$_ok#PN;NL*#fRQm$TxeVeRb=vyX3Vm^rLR zWVe5^y|ylj*XyeE*xU|3$c{>9oy}8e_j>A_o`9o(ss9dtCu7>+FjDg1H0&o$546^| zv`(Mfj*nr?Yj2od*|caOu3yb=osLt7b4HCmzVP^x>ClP4NU|P8G)^*3&NGnveehj8 zObIX!ndokq)zZ}3G^ed#MC~yJ-sZN31q~PQiy(GeXTZ|RyILa_<(d=KSgE6a- zA$%=Ob6aLCD5w%2IT>-@*fGaU563yVp|yQRV}ZY|eRe}rK@k!$eX@Oeh0`;AR^#!G zsSab-g4xEXs-|C;{DM(cvwxw4b7vKeE>`0~xDN_&mNJ~24K=co=&vsc(_gZ@B;-{$tYoE}E4 zs%+3PwXW7C=#HSxAGEoAH8yzr>uQ}odyUrz#YNpdg=cqznryNJ{m#=InrCbgPP2}x zba|^?fys!_=kwOqf#5+bmY;Ps0b~I+G8tT_O|ks)+3XW5oOON+$!>SnMTl@#1${1C zU6r@i9YpK!dtJ;~q~7JFXqUgD*zHH=qBxwx{>QrJ^w?d2O2@EYA;MPYa#z`>_dpUV z!R)3*tpyVs+FGX<6;5whIIFRJc0HVEy*LzHItC4(eO60bGIb(^j6J?cOKF`qqoscK z{}i-+!T%I&QNu!|>#Xity1#N_>vX01^m9)+A)irW&m+vm#DV&oa>d zeqpaOT{m3Whk7w|9%l5(dl0?oI0GFEYQ3#4;1AY1{Ephmj>=%6_CG1Ef06bdAJ@NF z`=1=wzeM|=64!sU_CGbQf2sB_i|ao|`eS$}3fS)zt?4b&g6MC{6ny zkfWA?h9J=2tnt;N=T@DskVsD*89i%ouSf*@z3}nbYB37fZ62@32}RK_<7>2i^5~gr zNYAQTr^8d}nx;dgDGxDDIqRkckrwTlt~_hK-nvS!J>YhD>a@sS%2Rs`RB`oI9ySk# zk6IWOQiVQ>?C{vpK?j}wV8G+>+igAvJ}V?yGE9*UlSMHcq8R!r2A{32CRkPLbqjS( z-%RC;BuG!P!IqK2vy`vf>2}~Nx{{c!h@!dIYH~l5j4{-0(;^Nq$ksJaz+UT5f;uVSsGWvE z+~=$n@dPVjVi?1ef2tw<>yYT6w<_qe`RjtXh~%l3xlS2riiaj93OFbV2sVPK24qN& zVyK&jG8?2~=%qYs9aZQxYmDPS|3+wL_qwZH6;RFY@G%FFP>;7Rh{!8lj$oCo&gK%; zno;!DQV34AEyUhzRTsPM9OQY>3quybI7nkZ!H?W&!?I&BhR)*F1U2m{ldYe0jRU<0E>^U z${|_@h2>a<)j0ii-r8wZm%H7gW3(&BMAn{*`U@%(G~2|mrzD;|rlbvC{yeuRppcRUt9u28nl zSg7UniN|CU@BLuq+l5@iL>0|sA_i_)*r+rID>^n6O?p+pW9JXi^D<0o*l)6}R(P4g z(!yS>@}i7(F3_HJnUXO8n+)`knfX6 zIMF%H-Z;My>Ft;z#$zop zN*qS62!2eWTuzz443Z|4u$fA*vnM&7WPe>H6mwytRYr}mE<#jgt*xp~WF&+1Vvs6d z6?#Y!ikU-&F$hM4a(aBV-fHx9e$fq)1w&y33+L>jT2O9pp~^JoQ8<$@Mn;6Fbxd|5 zBUpG0(?_JrHzhK|GZaPb-yVs>- z%FtZGVpIkr&Buw**&~_?W9qBgs$!jMBAS)(WBm`!Q5k2301CVV6R4bpSsG#~^29bzWI-#n?ffJk2A@*oJ8u(;!wm z3^V5bnyK1R$1I?gC6-2n=?KeHSfSD+pwt06K%K3k0yDpgTJID;>nq0^a^!0czuy&@ zY8aB8p~G*CRJ?;?cwLTan|&GzunX$%U$Kp(7 zWo;1kLv^fT(4b<2HQ!XXiy5se&_UYARISe8f|(Sqv1Z~9)|^!i2NY&!{t0AbWDv%p z97-xH-41sJOcJv>4AH?VSh<7f8v{bR+gIloLnnn`><9~~Lu`m5q%{44B&x3fpmF<|E~a&i++F z7AtG8jcHf2*Clg`WJYd@&WY1lGD{;bSTPM&Fei6pO_i*+I`o7U0eCRsWR~V0R`u*o zr_i0;X_C7RD{`7qT75x3=4)~uO2%}_Xh(Nq<2t6E#n7{tQV*-rn8LvLchsUu$>}zu zmUbe#1hgQIY7Eoc8b-7$a!PYCC}%Gy15V%h2FVNSD0)`tn>yj00|3?GWtm> zJ~gg2&6Ol7I#yUgkAn{v``s>9E2la65`ldwqib`VUQl6CNj}(VC-F1$LAC_T8aaBJ&uwkJUF|3;LW>9WK8P zoDt;>s{~6htkDeI*Xrx_3sa5sOe>uV1)(mMdf4jdpJnw|`C+aS_=O=!u52rp&&!1d zuXmzTE=G`{UkrojTEv13n=W|{u<~#%%Jj&wdN`ex`0lj~k!$s+a@ned*$}MrDuY+2 zBG1a`tE-iKV$}m(A<)>(~p9kXr>u=<;ZlUQhCYo~;KD~DP-6Sc$4 z&Vg12&bypgRiq8WVNcjX6f?-mg${2j*5;G}B?|Nr@L+g$VuQx%pBStPV0u9lmUN7` zptGd>eykaJoah5NpP?VdTKIV!Q&7y4QR``@z@qeHz&2Shtb#?XK18#aF<|(l6k2o0 z!79v$>x?2514d8yi4{)eP7#FX+fjUvi$&A?%m;)YRBchyb6&$uWd7v+5Nz@Ex48&Amb1KuZH{ zAD9vtv}_gFGs19*vT=%8$%o*<9Iq{buk3B7=)|B1((}PllXGh8i{j zF%B@($k0EMf%7d9@lN?DS0@t?5`= zw$R5w?>>2N3;xMRE{V<}twg@~JyuvJlr)^b)nW+~N?K}%(IKc}l~#`C z-+_(=v1xuR(**42z!)69GqNiyusYnqJyBemaY2k!D$BY)e1w)$FhxC-Th8a*9ASy~_a?n^{ zKxK$1PgovfMK?*W1C+54j<9G9=6%juF_Mu(87C^Ry)YOMX*KguSq_ojNUrIh9}$5H zjudm|Lh*y6{bjn$;6oz4p`0uR)Blhdf2khZI>jFr*B|^ff6ivI4XvL5-beI$1qR=GTBt}gct@&u#`e!3`1lo6vg;Ql|pe0gD3?W z19##`5&8lj*5q8S3UnkGoUq))8I@W!EdkdHsBT!aMmOxTP2*tetPWx|(SvgwSk%J` zwy}D)jcmr6O5H*%errj*oeW9s`lSWJcnc4I=t!A~yUg<#vOxFEv_O>;UnLT#(~#c~RnP2*ZHt0g$Z zYT-Oai8T%F=(sJc+zO#k)Akmu0aU(fx#48@`s8*LnM?y*F!_-fu+=)SwTJZwRwVM6 z=C|MxdjVJooQxF+E>ns+K`zq<7hL8z7-r+57THWQTngjvnQ5PfdAUwSUehucyrR(j z)3CY*BTFvBmKrCBSb;Jd^r2Qpr!oe^Rft0oes#xjxYfVbHbpDM)o2PRuri3rQYBUyW#__~8+nFWdE_h>r!}fEt2g_nVO9<~ zd4&-Nlh*7mj)-J%?=yFtUfFmI{h{1n)S$F*2B?O zK4ooiRukqlJMvO1r`QbPZj;ynK%Vdb2&>GP2reF{!wCvC@e0c{xlfGX=3XJ@?=hp8 z+1$rkxyOvgQBh9o<)$p>bc{cOhv!}}fKS`J84Ix{7;M8hk|E9!;FZYcfdNc@ zGxA!%#YK4>w5Xre*3@!7dhU$8m5N$}BN+89I0C%@>x>k71ZI2zE{lpKVG4MZ(ae}D zj}+2A!-$%Z*ABiGz9||}GaM(9;F2>*!7&sZi)P`dCOGC?k&-MJl?sI1Z8yi~NFqmiL zU4{TG+sXI_jJv*VUej!>!DQt9MUlf9AQ+Zxq+FE9QE@g3r`Hn*@wuUQWeVHG`n7D z%c{ye6;(Wll~a+f--A)4o~I5~`l&5B#hGxf1ZCv;lsum95vnrhiWSk;eTZM#Y!({PBYSBV@Yz0{#KDQ#0>`<(Mg?O8|&K%};0kmSv8H-6oMjm_E+WO|k z8MEqJ?M*E;vs*mv3+h`MX5kA!4GZxx8s=Y(62=o(Q~3I7t-eS3*c+Q#C6!rpEZdA~ zh_dyrBBh}TFWQC$pOM!L9fS&OC0xM^qC>271)W^4!;7SgVM=G@U4cL>9G@4%2Q!qt zhUzp9!_T`Z)Y=>zJSBle+{q;(XV~{4XJpqyLsJy%Hc7=UxCaF*sy0=kh8%lDyJ0

7O03>JSV7BS2Q&>s+vI&K}yE8648n_Djs`dL;b=w=fXKn{4#>5o~+>* z-u*aUBwG4gQX^JA43?8coMufIErG3)yE{mXWn)LEPW{XlBPt}jj+x{&yY^sEd=!1=wW?Un#wIo{aYR;TJu_R%ph`Sd3=ygu6uHNBP%N;jvt=21 ze*C5?K71TO6$a}H(@SMghAgr&#Z`xXLU9cRnX`Vg?x7c~z{P_aIV7SM7KvoA6OZo0 z4@J;#5EQCmq^rQk08& zH{jE)Qs~8=aV_GAJWVAMC;FjR;U`KTgRH29EGnJ`fT}1OQG1x_Cn-LDT|i|z#|0KK zKK-z;33ZVj05=58LQow*k?5Uy43qIho%9rbTzaG*zVl^%!c3^b9OgiW8#~BhYQd46 zoZ<0I443Sk(RnDtQe*%dFgZo5WCNZh8gH-xtylC5X%sx!i`8$|0QNr#x*x`?hgYbm zQqQI{Q7c}5w&+LAArO@n)(n63H^(nw8*yCM`X@HO5)X77XP!_(e2V`ML~B8 zdfFLRe}A#>s6Gdr>-&1ZqWpWMyxf$(mn~X;(u13d-z>k;eff32`>$c(g@%y-;4O1% zpGp7bla;?e>gU^UT>5*wDN@k4yfO9v{?od8k>e-V8;|_1_+!K1%a?Lf#_xM?)Z25v z`r?(sQGG_=cp*}nkxKgGf0)#3`P-du*8kzxf5zQPK_575&G^*oj=A8nx|~&) zp0jndVRQ)k*!jaAo$a~p)`GRKo$&4%&!TO=CFnOl{lbdFMz76#;xqfg6?guA8cGo-6e-Mo$8ZFuR8=ZmkxjdyhG~rcl44o*+}jx0ikkrBJ+5 zm*I7V1;guSHW!=%XlO3r@6iP#3(gb-&`FR#TIG+i@I9rVV0bYC!tX>}m=z45lt{{$ zFlDr$j4f0Y<5x#FW^7oviq4{djP68JfnOgT?yW}0S5!DUOp*~66`ET8`WSUy>HHiU z6W`e1FgjC|j*d5=%>tFl8~0o0rzJ76{KAqheHV~mY3qE)IK{S70G zsFA9Y>KdslO;OQr*DOj(O<6iqOU77w9+}3HF=pNR^_f}}+mRMoyK|Og?pY_%+9jww)qRj*e23`=--^@QaEbeYn3x+_RT#MX>+?LN zZ+$ZH?jrYrcN}|96W}`_-+$+5#S3Nd`E;?c&aeE6+p4XGy8%np3+L9> zpVN*FnAvh2puTO^yzqWZnC59}!PnsHX3SOV1>_R~>*hg5m=7PZoR7_%O6&v7SU9U5 zstZ50%A&S;;?TsmV7)Ea@zMOzpK%X_c6aWs^G}`EaZ4B z-kGRC5Tz z@9MMG@eF-Kf!tbz2-Rdy3i&eNe8x9V(A^oKJp9ZEEp5Z}bCMEuNXe?5e}Mnadl@#N zN;y|_z`rG|R%>fqwf1!`-Y3-B_bb)Xs#IijO~`&86LMo$F9E?bPY-=@#_OkoQiO!$ z8`I$$gKF2?z|`8fQnWg3GWxf9te z6`pe%nz2#bJA$yT>z1xpsL#xTYbQ_Dfeem;8 z$5_492)V&=W6G`g)fL#mHoF7rpxy28h1?ltn?&>8+7;N|xp=#=sPCnVw;Bc5mCO%; z=-3=`Z|`z%L4YpDnq3~j(z_EZ=bjRBY=@Aolja-q7+?qF8eNX(LyqTjo)GMCvBTM3 z8wzZ#o#ayto4W#AcJv9D#&qKuGx^LY2(a}jv2$jp5rGdG3YtB|a&{MATcSKaD#1Pr-f4h41# z(jH0LoyP3nGr+y2%dxx5jpE)rl9YWzNZH%v-nVOs$ij79OFN(ltB_+|SH(pk#~Rld|E=ijQ*Zb(edK-)2@(AC{;QC0=uG6%q;VKlqYqV<-exEF8UHD)6-l1I( z5YvP5yQ@qj{rGG|H<68h{QVvN7>hls2W1$x`n5oAzRCwZXj5~b*^hC$u|BYH7G5fc z?>OVjzheBxMp6GQu z4f}xu!L(V06H&;h4+MFQVuq%z%~;-}0)qc#@*^u3)-RG#wTiJ}lj4_*RC86BQE1s3 zF$|1{BJbf3&mmxbJ{+CMm~fmNKg6IQMulrpcILw}TaF+6ZpGz_e#SuAd!Gp$2>RK; z5?~{65^y2#Y+y666W9X064(m77kD1<3E=s_mw*=lUk6?Yq`HfNUji=%?g3r`A_1*p5`)*U6}?yQXy%p zl`GTOt7-c*E#Anu4axtyCSVRIGMFUDh#e%^o)pv$ox!RlxpTVQTXzkdgJE?JM!7i{b1^!1t{&XQ zG1{?p$*P>I*9kQ_sHf^axyymkH-^-?c#F|~oarGlK>R1vroC-uT`rTlSR`!=N8|mW zmh8!)+Klj!x~VI$IU;3)I~Q*@7Ui~JJlvGNC?jXesyR6W9Gi9xvd}Za^pFDs6^1Vi zRGZ~Mwevu{S(%RISiJr2}i(h70pc>JB`DMvl zFOs)GCT~|`q_{O*fpsEp_JzvxOWyzIITyjq=|=uBFl|cSn&b-w)?s?KMk>d&bcwXI zBQ4)`)qR(~Yt{2efV53BLY0{#_>Sn57X)o1O^dF|yb)0>NAhrJJ8TUU*S^rC{4U?g z);ZL{kT3ytF&_sY&GEb(t_vWvw-JELBYX#9g6jbAA_QEg2tL{t z((>qq-_r8f2G>~O%dcUV3fIMONj|3INBj-PpZW0X>C6OkFpst#_)(TqqO1poA^$cY z&xXh+CDHQ1FS8psp`vheCPq7gGqIug!^})t00WHdyazE=lh1;t+3k(>!UoufDy(b( z(xT$!iVL* z94^j7?^N`sbLGhR9B?4$F94Y}F9AmZUj~)|R{}YGUIjb{xEgpq@O2;yU@h=r;5y*5 zz_)ev8G z0d4`N0@)r>4TXimIfJxN=#mx+U75!F2+Y1D%lJsSG7aXWM}HBGG4m5arJY`KOu4?3}@4PD0}-CT{!RWmT^eVOPH z+4ytt*BjT#%^opc|5ga!a{OiBkI#W%vaT;(4_awd|Hd$V@plaV{x96WMK6Q0Un>U- z|M-|)D4cQTL;cb2$Z-TZGaS}gIAcLQ8fbRjAELXlaGRqZ=0i8z9E;xUzx$x9sb?mT zy7p6Le6qdzbhLi-TpbSQ}_#(9M&{4a#l<_YW!=9%P?AZo>ySBjZyT_q=K%%GgyJeS}WFG zL;0)62eR7-sb5$K7$1=GuZH|x4XZcy7G~abtJBmwx^e@+BHt`ZQLdW4##g=$TbCF$q3J7;<|NMe#r&w zw+`X=K(XJ6O2_Q;A|vy~oFWeeDRRK70p)J|;TZ%b zj-hJG%lFcYlltbg^n38!OGfoje^yJXexsrtsH)|`K+=Z*2LlfURss(Lo&!7_cpk6- zcmZ%2@G9VNAk`TOd>uFn_!jVZAQvM~0Db~21afj(0!)D(r9kH67$DQm?pHPgx@0q; zE7RDhe6x%Xl`B&$^hmyR$dG(ul17!}@@2@K-Bpvz8sf|ETs+ulLlqpn7Ty@P%27cq zc5nvT*%J2W^QCQ^kDUT;8kk!Hth1MOKpD=pFk#E+64rN@Fvz=>wV?RV+_r4W-2oT&P}0!_>^p_E_2MHeTIx(tY}wFq5#+## zXR+<%@IOCenPW>5{W5x}-{Eoe+oJX3sxFs*w@}A(yVLOlv}bgDThQt4gRc2dQ=|$L zFkj9J_r8cZI66jdABmpxb_8TrV3Bw)(zIXnSeJ={5+xw={e9#+rQ|$;S>Nim((Vfv zeXvdmvXI|BWUb7({EyJgEEJA>?f&`c%N(1NWM_IC*2&rZ>u?=#voJU7D6mw`+4SJ9 z)UFBXyWCuS7@S08M&i~XWiz;0QFhXF5h~|)xi^Fy8*cmGnnZU+nAQo_@(@|&c#P|Q-PmD``3+yv3 z7)%glBuJfXjAjo1FU_R}v6;<ZY$DOjJOQn0>qXu;uVnl;lV`)%qCQDYecUO)z2-&l?cNjR$wwLDE5H92) zCUu-+Q&d?OB`fQwR`&{ude<;hmTV8A_yZfz-RlO5og22yf1#{QUZIW7OVLhSL^-C1 zm1Ip!kJ7I1TE{AgVOe26BciNUS;{K1l7)A6#8QZE##mfIwM3zA5*sBoii~IgM<|_E_OL~2vKDV;m^Hq{OX)#2Mc~{!m(7Q`xtEKh1|R6g!1Ne<$^9+JOuZE-G^2k#V?A> znJo0~P)5o7+(fL&=<;O?0Vr5RNG(EnT|TJKQHw)jsa7o|6a7o{Ba8(FC7hJaszDb(zEY0@-TvEy-+LxBLl!9*=8=M;E z8++iAQhwBY>F|+!!{EAG#4#E!xqQ|M*ZqRV1#GF`EpW*YT#%PrX}!@M*zqghmh2L^m6>U@W)W<>DkOH2a_tQ)`qEmGf$UrBa$;BIm13L^!dcNO_#K4TVh5#2P7Xad8EdTdiK5L2cn)d|9_!+0jH2cO=`6u&7`#Kr1=AnYZ(dO5?;B(`@#u~CZGNN9 z{Qa5C6zyLs6D)p*7k{3VDH5_-SC_+e1O6UR^wZQVcP?-U=<|Rq*#=+{a6Zru#Az!Hz}tWq0dEKL*wI};w)4AzPXQkQz65*-$ZCjdbRD~ae*pdfd=!|1 zoPP}15BNCnVBjBtyd?GnunhPl&D#0w6A;ciar@54;DM z4}1|g2)GV-AaE0KFmN02AmHb~Lx8)1hXOM&J{<-;7+3%-1r7t+fkyznz@vflfyV-y zfyV(a0*(T90#5*T0SkfG0E>Ws0+s+*14jej0hR(k295!K20RhC2RIhEA2<%!7w!Kf zV1M9vU;*$H;PJpyfhPgWfD?e_KtIq1JQG*}oC~xA8-P{7MZjucC$I*1E6@qN4>$q% z9B?A=RiGQV4(I{C1M~tv2Ks>8fRlh6Lu-K?8Sg>clB;fX$yGPHGR0L&S{qpgkCM@q zXn)Z~YZPT@m&(ZsPx)U#E0Q z$4dSz%DLio3{{~e{E_qAQU>~Y_%gyy^p?gl#~w`AaMn3|I+_POxV)9K#s@cw0v62%+a8laeKM zClh21mGir=1qCTg9#U$BO$E-$vO~=ooo}Xu%CkE+7+uSjBiS-Px}Lq4?j;Z4|B#@M zUq(v%0W#yp-$b7_%)qxIT4UEhE!LdNVmh~#tBUOhaYoA%lzYq)<&1VYYP}4D+}u-( zgE6KrIB}pn1LsEHOwYtRUUXovVwy~G$gk+Sg0niYA$V|AEI*bY(w*C|?enJNQxxW> zi3+p*h@9u7Z?t@@$Z!YfYslDnEB=#`9scWj&+^8GrrHs zOULFBghkvG$W_ADL(a|%gs@c!l^QAJ+CzeFq1_ukjr~l{ ziu{yX@mrkv#_#k@28^m?SOt2LHz`CXB9;=Ll-0KlaqS!?lCU@D)$(*K4QI>VOg7Z6 zo7jM5QbH9O<3;P`Zi(pdCS{Ko{%zyK3Cwx5A{`p+4NW?v*3#W@EsZ^^*_H<*q5s5? zwrlb-$72bTitR<=8I>ILkjpz4KPI|>$1I6jE)#VRZg(crO?bxYc5CP2JB4m{T6DWr>NXc@?Hu^q=yqc= z-GpbXZr64$zES9QqeZuCrEYIy6LIJH_zyKLvaMwsi*jTIz4U^NpMS<)6NV6;TQzo_ zxy*4@LOpCD>508{UNeg6dAb}+I~QLi^tsBS&r+$+cy?qoL`aSVN!CkbFWz5g@D~eWiwkZ%F%x67*q9YDAnABjObD!g119#>v%&od=0HE4zu)^iLRPxrmc&B2K{{ zj+4GJ&VOQsWaoqUZ|#zkNyM{ExDqyZq?nxaPZ;}HFm$dI0@)u4{&4K{m9d}C*pJ44 z%a)8*GULs{+7YMepD@ls5hvM1iUof-PWs9?dofOKiL7069El>ubR|o%>7Ow65fIS1 zQV3*<1%Ehp`pVd^K*T$_Ai8YH@NVKX{S(GnAmSvONU`7#$4Orq=K#jJ8iwE6C5MnG zQcPE}6r27DV;>9wohyYvrdaTYW2di-{U$`blUpjwmgIL6r|F+C&Rh{E*+hy3e>hJ1 z$~d{Mx|63{*DlE>QKXozWGOcN6ULqa0i7#_K&DvmhhwL&jGapcJGni$Y)N`Iahm=K z<1|E^WD_YC{NXt1E8{$Yaq`gEvL*X5TS%5p(?4OH`yilmCD}xrfF5?0)+;&}?={+RdWDN3a-y^=bFG;Bv7p7} zb@5A1^3-`GbNe2%yU0u6bFO8m|1X}Dp{YaDhNchg)w|EojG=vpW)967I&^6E(4qYf z7@9LQcWB)>SyaLGN- z2jF@by@1^NUM^g#L7OVV@<{ZHA_T8yU_lIgC&I;DiG1S>xLy&yJgy*p&(Xerg=>`H z<4(5R!5o0!a_6)dE=lvkb+X`_t!Y=o?f_Q*AjI|{GiueaDamZ@Bc-!cz2!^QR1 zd?O#jvy^fKTrzFf!}X>Jdkb7L>_c$Lu&=`<^Z9eQWLWM8$gn{eK~nN1a7o`A;gY`p zhHJWrcL;1c>01bw^t}bHvxM&o?Ymz49-d*wTMd^CI~^_=_6hC#7wyYkIO$t~d4kkx z0bDX{2rlWn9WJR=4rXA|cNARG_jhoeDYSY@`@W}rM__6zb@sz0!=3||4EtxeW{9vq zYTp5vtxMlVxMm99Ti}vmpVhwG;F9^Ag|!svdkkDMYyd9ldx`eFOZ$ER*EAvdKiYQ) zR+ePgYPe)>oCBAXe2w;f1Fq9W*l)FOKdigSu;bvGE_`RfCBt5-eOJJBhVbR`rS$z- z`;NrArp(CzT++7{E-CpDxPl@qu7oIGT+UFwIE$?Exf(7RwjM4S_Byy^K4TY8`C^|< z`C`XP&n3)d>)%7<&Ua1Dm*HQ_o0uGfXD0IoH{H5{%tglhy`Zwl9OaPb^YZ=(>db;30o zuD671EL?vUE@XDhiI9cxFNG^)uDU6X*ScuCg)^v^ItIn;2v16kNd?~w?q$lypBrO`r>nUNf$qd7{(MRAlw2Pr9u=7?6T_{1oV;^^cT^TUi*)yLv@{BHY$e)w{Y>0cQbg0!X1~l3?5nN zZt#$I6L^`HxV(0F@W==r@~#K(5pc)lt$_#c_2D7!I`Edmosf5Xn0FO;ZHaj8@F-%> zDCIt%Oovy%#H9ws`wVz_!cpj8Eq5;%c1S)J#*^Ta2d&J)urhA|^U1K|@GxPIfjMp^ z83%?BBp-z?Pb%~lFz3PO!$YADB+`^Zn_sIK)VWDkcj$2R^x;HGexm%%5*xz`lX(O0< zEHkF^Q|Qf-kDAWwR_Ly<(Ai*)Tly3_7N$HN3O%b^q01yQHJuJ-TOv*W8WuXWTcIaN zD~Uquz??Ao7fC*9>PsrL3F+Aw7U}|X+qkD3-H6-rGX4GTRE%z244 z{V*(aL{g#D^q3s{Cp8@o=D012nmQ#PH7!Ugl$zcZ7J3Mo6KT3OEOc;Ep-m7vBp3fl zP4mGVx1M^zFkbRe)7+#&sp&Ogq1j;OSDRwmK850i27D+qBdJho+E1GJEd6va$8Gx* zI!f|UsL`!ZoV4Xbpcfj+2R{(jMc`1+!=vM-_14BT*kZKu_w^uOt7cZu|2ABpD^E%+c z!0UlW18)FwUGPTWIN(jdGT<#huC&|=@m_if-DAl4>28iDTuL%{cd*8|@N(!AXa{w@?gSnO#F~XTCH*~+mmq%tdVoIy7XbeOWM}gekS6WVz}tbC z1uO(&O{3#PU=EPh>_8xI+zbLf4m=3> z4Dev!b3jbPI^F>u2BcMsPgHe$0~`kY0f;$Q$In2lcXafE&3Pm+8+Z(mhV2PJ9}p`Z z9ksv`U;_~A9vw7jPXu-WvHH<*4R9Rr4&X_^`+(zt%YkJ;+O!TJPc>Ho{|dKz)D~MNOSgd;8Ngp;FZ82@IK&KK$@|$fIQti8@Lu& z5BvZ)2gp;-bAeldX9H=;o&)6R<`y7NH@5?i0iFw_1$#bl67T}x6ySxxS-^{cJk7iq z*bKZBNF(+N;BCOA!25wA;0wU3fHYpO0rJ%HwZN}{*8zV3UJv{Ucmt3xWVi)L`}Hp1 zF~GZl#lZW3F5vw@+N}=)F91FS>;ygxydJn5cn9zi;QheIfizwJ1biF#3~&>01@P~{ z=Ycd?UjiNi!|`R{k-(L}(ZE-LrvP6CRsvrK(rSGRxB&QP;JLtefY$=w1=3pG2z&+j zK5#AY1K>x%O~6lq9|FGwehj3+`YA96w&PadVBqJ#V&HZl4b`uJX90Hr8-P23=K;S4 zUJBd=TnhXaNL%$sAdiy$1Nb8FC*UUFzksw+{{u{g1^8cJ7Vu}_!9Z?Y905!L9t-RR zq?wup^aHbj(}6j_bAh=)nx_MR4*>Ilj{^q+Uj_~Wz5zTCxE?qJNDFl+a2IeGke29? zz`?Ndjsgw^9t|u6jsT7W9s?`~9tWf`S_}*VOMo;w#{jPao(Q}NI2QN-a2)V);7Pz| zfTsXyca{TR2ik$304ssCGpm7_u;OZf1AtE8FyI8>NZ>?ZG0+2~saXe{1PlOaQceY4 z44ekM0(ctmX5i_-dw|n{4*`QfT9q?_&jRa#?*ZokX+<^w_XFnxd*z_r0`q~5z(aux zfWv{!KpK+g0`0&>KpKn}0Gojq0?!9t1Y8PS47?6_F_0&UF9p(Oyd3y2@Cx8+;8GxM z#1QcBz^j1&1TF*ihDCNYFb8-Ia1ii%AkD;Efu+FPfHVj11kMEB1w0#gH}C@BJ-|-j zy}&DhzX#GHdGlb*KX5B>9B>;DH$#lifV@5MIq)>#b|7prV>b{snDKYu z{lIU54*|ae!j>?;2co$c_ri9Nw>{{Rw>{{}G;W12_f)gQr^M*WG#& z1}^SFWf?Bz$`t#C+@Z=6J9%_v;_WkX|0>H^s9d-S1Q&O=vW!cVE7Q0NE?SLQ#5<8|fAG&aD+J+~}llX7Jm+u-7kT$b^L zav>e~jm86-OSv+QcDQ66KVP|^i>BSDX5XLcgJDRhl+m(-vylEt+;sHE0^oD=1-QPXbHwA(aorKYXcw68Vo@0!*h7Nd-JkaA@jWtwK! zG~N=Bd}nLgjhc3=roF6bt2Aw=rhTJnc^K-Xyn)JHGlUZu>Y=)G81FD?n=kgF z0bVAuSDY%t$56znGWTQru)<^LBKd-|z+>_n4c{Rf|&5zk|6z_gwnIeyO%F=%a5tx zPLSh))^a2Zv98{hhE(svZ3=xcPh7oo=Z=(~OiwoM5#jwP%ko#7$KtYg9SEgXZ%u<< ze9_k)?SVI__;yfj+*uMAA@LS(yj*2pR|el~VtzVc5S;R?N-3O^bgq2Mdn zw__(YM;ond$^L8omyhjf4b&7AQ3tjs`{7Diw$-~QHA?A@OyOD&(V&vxJT zE4@uc+Jar}mD;|>c9t%`g&p8`P#4o`3)+}qYj`Y#M>TrgPX#`;pR}5YdJh0ZUJSrZV5G$!&XqwcWbCeBKyj1dr5BFOG=q# zE%l}YwV_H%1!^^Qf0{+Y{T&m#9Ur^NCU$?aiQS*&OZ^`qoS@6=d|FHnRpwK$uhcgh zm36gMb$qedYQ#phed?<9xgy_Bt>*Ng;abbBdbY0qY6ElR`htc5(R@laO%q>H@#ZtJ z+=|FKgC|XH*Eo5SzHw&iv#J$cet$}DyhX3HW)f{+vQiIVWo@r=R;nRx0^lRv)qDW` z8>F0YH__aRapqDQO&4B0YGbCjD*LQVbI_4c$~LWB)-WXd=y%DZCr3wXPuqB9O`p2Y z%Jx7Nm34EL@Az5S8Eus^gO~J%&-rWMUMAzEYI1GmWcSj}ynI%6?i`CQ{PuKNQ{SF8 zbZFS&l2*!sJR?@tmYbhzuBfUtUEW$QKUyLR6DWAka;fW(G>pC6<^k1L_2oAB;~10v z$s~vgns6|a4vykzUm&3ix z(f+uXvTJ)6m6Im~^7}9LtvG%}B8SsCibXS1Ei076CDtobHm5i$*gLUjWpiUU<9#^P zX4m;a(7M?y&-zrzR<%R=`K2XJOrv$;4nBF9tq!u6>teW3O2y*Q1$+! zq2?z$4(b`705w<5iLeG%!CKf0YSQoCP|y2RsOP5{AUwyD9Aq-b!BfnyOW{gvZKo z#y#9t*%BVBIB#V%_1+Q0G~Slj!Z|sS#q#f%CxV#ut+RbQ4_dGF6Z1=2nP1ifsqJH) zv$COfEaOlbUnkn=T70-&W^?reYg#pI*~Gt=b6Lyj*UUgeWjFa@82s#@M{+(Z;LeCtHOTohV6q`gY8 z<$TQ%XugbO)C~`e8EpqgFgNT9O?Y9t>ArSNMpxNzmM;CZo^7kY`fm71vHYLm-DCM% ztzx0MwlAouTGo&X-I0CSvsJ{GqxaG%Y*$(hW%TGeRwf)Xx~}9-?y_w|c?0t$tjbB> z4V&4s&30>7|KNZ4qDG4?asiE#6wc%cME0|6jN?#Ud9WAK!zL+*8Ag^~5>z3{!Y(np z_Ha8Y3ra0h<-u4aw~+5gQZH$_A5yw==IuAyl|obgn_-hn--!)bil8EE6s9K^zrCmpSMpLxK_I*?*XmYg=8RLGY zjUipdUpvRE2rKwoX!vS(;;Kc_JUWz-tabf3VZ~f3T4IfErXS5KZ0NI{|qRL z`fR8g-g$5&q&Fj@Ig>7gV_<(c2@Zmf!%LvvAbLA8zk-9|LO2vIhr{5%;FWMIv~d;O z5sri%;We-eq?aV4g=DUSO1Y!q#V`XkB4G@?5{`w^Y7LZ)MsG^yQFt4C8jgpr!`tCo z@J{#-csHzv_rkB>B=`-yA8w4kAA*~~hv8PR4t9c%K&9oMKqXFHtC!u9yzG{g3N*e$ zZ(lkn3#C->BP91H+tdBs6uXU!-K?A*Y~?iNWX>8@YpiNAxfXl7&*a*pO4HrjX+1^e z{B9r5mrEJ^24T%4CEjq~m!sF%+$EKhYWhsBshU{ZXCjt*x9;smZb?Ih{!i-GyY$M` z%n~lPUipZf#~Mc?$~E&g6`@HrRg-IU+C-vd8CyG3|0l7GZFJ`8oM|-{W)o^(Lq6WV zwv<`LDalvM_~Muu7`{|(WChU1Vof|FQZr@K*KcNl_~f`&iyB3Br|n2eF4YNG0!#+V zs<;?#I6JB%t)-IXWr3PcR&<%&>y)fAoobd%0X&>?Z&h?jYEG%Ym5XV(p14b!j{CeQ z?xj{gqrA$V)OUR2Buj*-(nwdp5}ml`Uc&O~(aV_!G4~Rdt0dft61s-+E}Sb@rO{EO zt@2?s+ww zAK-g1?#f}cJx?2Hb_sAbXLn1~aCDAxsxruIis2TQ06i`qR(aX*Vb>gG8MX3%MNq-M z7rS1ua4V4iD<74QFvlLCa44O^HFUWFU$#lpYwC)X-S!`F<#4TjWD}Umt0qLPqC~r@ z-{27gY?Pbw^ERApjVw_~Vdq9mDammSzJ_yd99VWk&)FQ<16{DGp~qTpu-;X%Dx$Ka zI*ans@N5-a4B&~+UaJ2b%c^QcHK+XG zRcc@fWR8JlP&d~eUJo~g&p>j-%uHAge+9RIzlB@EParvE=5x3;RGSbpTiQ6c?ck&-J z&H+&4Wn0RW0ZR#PeC0RFICG3>=3DzF&h2RTG8>rI?=|)6{UxwltG*dWwp0JG z1)#hu5x|RC*=0@uL!tmySper+0QvLysSa283igTuSZM)lZvm{xy8>znh0kAs2JH@3 z*!h3ruh+S9?|=$Y;q#|O=P$SOAGGt8W9Ob9-Sh@%t>L<8f#&7-ra_*53)iU~J?B=f zKiPg242A6mvR9#hl2b!r_)z%ynlqJX_LO;a9Nl#U90jNGX^2ax?Ka_Y1+!$qxdV ze>>qL`E?(kNG5#jMSfN(R)&7th)jIZTEr>f%mU`)`vQXt_RGMWM znMVl*i}g%{{8L?ucC2`|4V(4z`wU2?w16LEd9(PLC%7xvhO6vL*d7Zajd`P`$8Z~u(HGSs3?=}X1B zift7w+I~&CQQDgiJHj{Mp72e0CZxM2GX%a3b-}-fnXX`4$l*kO?|0*~XegUO_8eOeH^&5CU|JT4eh{=(e3crQZ;dfAvp=~P~ za3M{nHW_#c)Upp7!WFO-YIQ}LVlrPsu08V|qzY%l=-b0>&^snfrURswlGz1r4iARq zP?gjzpbT$Tgty7Uw}dD2A062G&)Y%0>%DMu^FmVEnvW!<0yPyWM^4+yXp&OF6SygF zP6tniQp!5@l#`_cnPZYt!RtuM=hAxqCi(C+<$^wZO;Sov#q!Ox^lwrsSdFB7Gc8@3 zl#(_A<+N#AVop*j*cvzGwCO-4v!qn8JCgF|bg*|QF@y@q?`=XTr2-jf?)Fmb_UG75 zgU4J4GI88rI+Pe97rS+h-Oh~N&WYV_jNNXI-KNHF(_%MFu`w&AaI1}V?3(d?dHZVb z)~`)fY{D!0Z9nn{wPPjZnq3VkD}w7UC4(D}MRZB4@m9&pZ9or=fe}>FR|QNETG@Uc z@mhVjUZ2WFre4$0mz3R7qZ0~T0-=R<#QMKcAEXY+T*u**$PF81H3Kj2R=N7hgVebC zLOdTWvj)4JlBoW!slU&{V(}SGo!l@pE0!DVNaNUpXb~McD;sOjUY9@3yt*Bmb8~HK zT*;=}P0DVeR?@`HaW_<}S%hclyh<`5at!WiiCq?JbuZC9sk6dXnaglkExF5L!wy*u z|KvV4Od`75)(tyQ39qeMcI&3&Xfs)A!RdeX91QMd4G-22(FIABEZ0rsi{@1>R2Yh! zWsA_sLWF{mFV2d5ag&iR!oc&$7g=!nZ;>x1@|C;@7Wo2;eEz)3xl!bE&G%f^u2SUc zFwVL21zC|VV2QqhH$I=ai9PQ57MlK7&uLpzwV>gl`r%RBvn}pf^D33S*p1IL-z0^Z z1>??H>8Yu>XVq5C_PA$RX!>t)&n9kVL3ZCWEbi&yKp!c6n)#lFpt$=a@4IpKUS{&G z?b)_>ZTqN&C^nz%q0hLLwyEjkXjz$VAx>vy(CRs*HB~bj?w1wM6K9kVPkhR}$~rE` zZoJOC*40+l6^wjpmeQxLE%K>~e2OBUVj)hct(t0)Pi?rLsN-O)HbyqlSV2-9!`jod zc2e9Llwa43%I6(|XgLfX)z z{z$6PmfIq(8=0F@X38Xr+OUd1VHmbFbw}FU&Nw}GQ*o{K)so;5q)kjxA<*6YeS&m_ zNoVuxZmJ%5rD8FXw`=_!$txAgWZdlnB(GE~MDlj650Si5QAJMcZs#F+rD7tI3YKzP z8ObGmtyRidCBb|o+BcAvBI)b25*tC#&LoW>_<>2QkZ3RA=xQWdN|4qd(RP9qY+$V> zNNtfc=U+)sibM+vQadEtPIMIgVcrCt*rRPnj!xlER6RIvBgu{92{eZK$V4?n=g7Y} zY3-F&6Ai=_8(dpd zF&Rp5L+oGFpXFmHvQN7j|Bvw|v1tMn)jo6;Lwqf!C1G?v0g6UqbkxCqL9(KyV0Pm5 z2!mOa8_dF-U{rC@aPtDejO2XvoQA>7&kbg7PB07fujyd6CBcWm%*qW$T^7=z-_&gW z4KEzbb$GhBF_`JO!A#2uW(NOuZaSE94zWqaQ*wi;%L!&G|2A(7rtzy~S~cTM@9R|l zUBFIjsclDxt&w~ekg3Flye@Mr{1NO8&w!V~GvT%HY*-EZ!diGPoDVOAGGO{cC8vv_ z8pbYxUqZg1wec%Mp!%vVhZ;@-6^|)ibW_rR0;E&*Bcmd?QiHu5!hv2pFVW@_nIyedPHAUur_$XA0eF8oP z`F11o6y&=O>q~qZ{(=9`z`wv};Yv6i{u}bONoF${xHQIPL=?Ca*)@NE9ifjk?15tQK>=)0i|y4T!gnF;W9cqg0(m8Rc<+@pGi zGTcM(TS(Z!@8ECX@8Ns!4{!xs1V4lCz*X>F*q(%npNz&PybqPg{{l5n<5H-MhgHJ;#WhHjG`P0|^l2QSU3s%mj)r??LDxe`ieJ6yc z_exSK*bQk@bJM#eDHR-o)ZW|<52aLaJW`ptofJx`;B2IJ=5}5vrGmjovQpB)&`?SR zqmg9Iq=PY`L=_&5x&HJHx&C^^Zl}d=_r`7y#BP6%-9C)nb|HKZZ}(8*T4J}Mu^Vqe z=9aA{ufQ$Z6u)wPGXJ1!==k%rH|EWNo8k66+!nqFb)7SzVw3&rZ-XR%8zk|)UU-!6 z^+G8X#9FN$&9V?IKHehT?m;*e?7AmyN!{Ln+i?lq>Ky5IXLeSt3%9%m@qFDLT%>Xp zaF%juG_-4sVp9A`-Tn&Q>6+%kt>EjhBb)~n+DJw1-Il#t zSvq$1=pqxWBCKF<%dV{$rRp5rz;^5`5g2aGDD~6}qE3ejPSCEcaEcwuk+mpQ@h6q~ z07}y}O@_Lp2jMpGVW{h@gNke@3UsAPa-~XgrMjDx>TZoneX+9iaAgG77pd1D;Tc4jyTy8~9$gxYiZX&?bsJ>_EzxauMlhpj-3~53mmSW{twpzmGJ;>A zJL#5B@hl^F1?myK29?HVL+MuLqU%sFHM*4?CAcgxakyI|DTH_+r;8VuW1S?;Lv z8zNm7TcD{Crh>hxOgF=^;}e;#&e45!VSk}Tx-K@?Rrge*vXhyv;!mdI-=Irf(*n2~ zd<%AlzlFNag;2Uyqm1iXlIvQM>)PFcau`xEmo>BhGOjmGL)~rg`Inzz5 zRPiU%>90|lu4x`DgY%(`us5Nu^EXf`y(?C!Bv+{KW*omFhk;APh)vj9}OAJZ%>Kc;j{VnR#buENj!r#FT z@DI?g6-vDmQKe@Cl3cx#eEt)6n;-hisyBExTWp%uD^`kTGLbWlSqnqf!zMxp;T0UE(fh)~5mRos>Rs6{mI~K+1nr?<$z+2!Bum*O3 zw?Zja^Rak}mE?+*s)T-sZ{YN)9IC{ zOxH9Vs^A&{Rd9`jy3VViR9YLWRFbPylB?9+q*8awQYqDgAB2^KO{}u8sr@TDLpX>) zE7+UL5HcJ~8eKX^H?<%8TP;%bx|L$doL2EC6@5F3)HVGW%7UE$W%1q#b)8IVVu~Ig zD_W8(T9PZ;-K1!Dixs_oi?9q4B$b+7guPj`QrEo%ODeTchHxoLlTuly$1;Q=P^tEE zs0?8!RO-DoR;nadsw7vcyGg0;)~M7MDod+Z-%xA=LMK9~U~kK=EopHT$`f>s?m&$n zFBYR!%VOh^wiTSFU7Kz++-O{lnrS=Ww3f0<@h6k&AE;F6nwVA6T4~>bYNdS->N*!g zMK%%*df6q(wJOQA>TYvGe_7TR+3XF)nghzRD%e}1((G*Z<)T$8d!R^jAkp%jOsIvj z*#=Z5m9BuwW|;`dve|z^CD@fvDpl8=t5lM!RFbRI-K0`?ixa9fe9O)%TCvU9Ss5Zp z<^b7t)~psOw%BYn*U(BTwve6m4T_Uu*Ff1>|ADfzzJnbgZ-psVeW9*cNv>E)u2^@I zV%;rPEFW{M&m15_3`wna!Y#@HW)`j0Q(MsNq6FEP1thhq_>(!n2ccG%z|A=RC#W3Y zFHkwaQmEv5b*xoMu2o5{RdGHn-byOAP;&ho#pz+Mf=aF|I%moCOW1+`tDzKoU94D1u2@N~Sa*|R-7QP8 z?Y;}mt<11&bF1ilp*eGF43Q>V4YJLxS6Zg%Vl#%^mRYVLsq8`~R~z1aDZ4F{$+ZEL z$+aPr$yExa?9s8ZCAqRCdF9sK=7;{W$}yQ-)vGh3Hgcipw7fS#Rj@aemJ6v^=jc|{ zm-15aDqeT%i+GYM)-@zEijPRIx~^qV8N}aUC-@JjYh4bd;%j0ROL7%UauvIqRP1hX zdRABNcVu2gHhC%L3ihTn+nfP5yC}^n=Uso+g04BK)on?b(&~0l+3)sH+T9T<`|SXw z)l95aNv>5%o=dpf+|XZE!ZmBbdTd&t+o*S}l<>3_lLKe>j{UMlx-B+eSi8YcsCR5n zbSK^J1y#}A8>)b0Ds<}|+Yd^&H^#b^Z7>+A^qmSbHd?ULPw}k}Fk`E7jekRCkM&s)iZw&LzPX zTN{fKY+J(9*3tw!r+D42HDJw{blX&SZVNJpLkYKny{XKhP?4r{bYJQw{Z-3!U2N{qtks}vNM^oW(5J4eE8Gnp z06W8jpsw{`D1BGQ`j+JSmgGg6yUh>%Wo5qWx1pwxVzV=d*NRu{dbJe_WfGgCI4QOq z>av*l*D{GMp)!fBpcH#UtXN5|SV^u}cavh>El$W|Mz>=y@(sf_ZCQuIUW8P^Udpa5 znN1YZu+Gt)$f$g$C=DxzI9NtQu}N17Y^<~KCz%cF8m6*uz#a{+`zspMb$u9W_9Li( z{swiee}~fW-LZxxxrQaVhTTmXcDF1IV~u@RbXB4gAylw8l>s+rjlEs8X8-S6WA~vo zY4v_6YwQ6iYwSTNYwRH?t==AMRg!B}l4ro~rVQBKVy$LbW5w$>D%_e%wHe|`8V))~ z_n{Q=+ZO3|-4bmw#TF{ueuD0FO^-qqZd0HNx5uHb^QTa{{c)^YNv>N-u3LALZrv?M zx1+YR(McT4`Y=_%XC|8s%^GtE0j^3ivFbE)1WenK2RCO=}-Zl0j1wtV*N^T z{Yvsw>uyT5?iTA;?YxI8-4VEsjik0Mwm6Xz)J9ac3EDfcwf_&N|{Ertb zh~`32dK__LG$ZAz$T@>oEjiFQy#UX|mK<1BV95b3Eud-0RyQ2dux%993Y*=M6%pFA zh(P5EX7Oj5hTMrK+Q*X@_!nAD%+;?Hcr-Ux9{dRD9+MtG>S5B;NROFRD3LtR(bL$Y zL~;>zy6n02nOY|}I*~|pj?BL)?9VovNP1j8;)20GHjS{Ik+HW!!TD|CqkiN!3T@@>8+A7I4@L>Mm3VXm>cs{%h z4us?3rSNvB>$ww-f_K4j@NReyya)aS-V60iSP{uyg3Ed8p1Vl$mq1d=zO-~V26kwdi?i9)!l$tz>DgYtuu?Zra)aW$SuNpt7zF;ZCp=>K-jxTF$w?E|nKGtMiMRtobqbZP1)pOt9&X z`MC0$o=ljW9VUn4Fyl{vyAX#z?h}!`Fu4WE3lqI7U$A##kG6Xel&+&Bu=|F&@9YO0 zOTM!@M=Dj;`D9T^z-xGlr-HqdJ&F&prSI&{aT>_Z_f=|a$Ko#QK!oF}j*bi@UpOibQZco`<2ADqc?SJu}NMMGH>+$uARa#O#p!4#WX*=sO`Grwgm!xS|1 z&RS<_RZX9%T4#yrr=~Ws&JtdxXq}}gOdyq9XNfssvCEiYR(W9ytgngO(lMyJ+*W&A zN@^>yb#67gQHiEg3|C6h`~^+hW;=3Ji6BboTG=hzHe1cH%0ywPb7X650;e_mVx7`& zIL1uB!B+iLR2A&ou}4uNt{>}6^X$m%@>P+t-?}Q|=*Z5dw@!2WWWRN?zD95?@zyEd zu49ij-M3yk-LkZ=?GRoD>EcMJ7`j8X?;H(Pi1vUzU?n^s9s^}}9SbjmJ>gJzJftEU zoB+qe6QS(uD)=Nk3H}21g6+7D-cb5KMgMUhOiJ*VQIfxml6>VgcVi+k^Op(^4yAN( zSnRf*Ykm)MQOO)xMz7^i@UdnSPBC5jEh?2Y|59VA%r)o%@5df(x;{N%48pkdSsB*; zJ_~DqpNF--0kOg*xxyu-tj_0d%LvEa63QJ&c{#8MyJ&X;=uV*J0hgXvC?14c1$*=& zCGDa@k3i?>5$LubZ~hS!F$%LqkDz0rM^M4FM4PTpk09GN`giyUzJx#E*jKO<{2J;$ zzJb!gKs4p=fFyq;lKhdln;wa~B_7Ft!%!{sK(Y*YxAiLaLH)~bd>Nxgj)4l1P-h_Qr==ejDi0*e+xFy^Jc7S_A zC852bjMcrNjMaUhjE8+;Ke!*1vARE$vDyXR2)n}D;Q>&(JP;}=UK%GwNuCrXvGRR* zl$Gy8$&FR_Cu7z9S@JyN5&Zn$HdZzN+xj$C4~vXdOwb-1uhR5f!JH3++8$eI(p1@{ zQ<=|nPQ8{0ZTFULQ0srP5)gK2IB(PUv`d#0rrV{mK^{Zzg-bNex^)JAqY{mAcRALm zX6ia7VU5~MUAXJm)6Ks*!?Mj$#Z|$+6?+sX;{T>O%7rB@Qr)}WEZufwk@g|Q%OX7+ zc7*3bS)}JdS)}K~99^&GXne#!oMMl$4 zn@?iJj5KReA+6atvkPe@g9`R&)AcDCWE)N2Vif6`zk@QGcmifLwSqF5T8EG6qWCdM z^2a2}%V>97hJSanOt4pWgHkDt)h|bI=-L10yh~4QB=~lUBSVy>LDu!5`kZFO-f zIBhX4IVcZoLqgLkTS2xFFp>jmonzB{sZkTvkPGauTCh}i9^#YGZW0`_X;<@0U6%XM ze?_CMC;y{Pw{h-dzq)rN-)#F}1-+Nj$ER>h_)mB;TnW#F|AN=U&)``2In+gd0hL?* z8{PxIfq#Vmfq#YH!fzqho{_FwLFrG8ke*vf^4CC;FS+1u4WYl37LBko(zY(N`|A|D zX?93=Q?BOcDpzwidxeI2-$qU4gxabJ(MnPivR9JYjmSynWww&kgxWq6Y$d4))uSh{ zl2nNuobX*I-8$o$K>y^I3T5s9c}b z=Ci;WQLk05%=LMu`7F2?6iUFaX~J!gwq}FG_DB8pcJA`LE7w`e$#~SQ$%k<$vzk4WqO2zgV-LMK$zW z%dyJwm5cJC{JiX}%0=;&HIR43d22H4oQ0$YPS7oV-|Zv<_?+}rVoQW88!QiMa8pA@ zdGK>2)t}3QKOw15DA!Uf;et_m2i(p(8cEf<^57CAHT)6^(i0|4MUqur9?V0UYSKqY zYNsj>zC)5NP#$c{uR55@gCqG>FClB`^1F(?#Fmp%TTO{|w*TAQl$ozKNnx!qX(+#6 zn52Tq&rregrMc;g*sn}dVf7!AZsPY_lg9D;ok_Rx>*s1jpi7!@$E8U~U$d74lllF| zBr?;yHk&$*48=Xlv#I~&lntM9{IG{tcAyPUd=6TPZ z$-VQz^eJbr9@RNH3w!<&RR<(bNlxwFxpUG-a?L8u+nyck!HNF|CH{ZUHLZ@~xwthY zBP_cICcD&=$$Sbso7$DNrd0>z{AHlzF|5_fjRA*7voWt zj{Fci;kpS4mrYS?Ci)6w_t-eIuI4?CHl=gf1ADUf58cPMc6;C!*b#T$%Z!fKKs~10 zp=vQdhB8NZM{OJfL;S5BfU-C9Fz)w4Jp|s;%**gW_y&9kO6QNlWpE1o98y=!NX1V= zwYNV7_l47-H2O1mJbVuR2>u*Ofit02WO)f*3txse!e7CO@O3Ety$PR#zkympasiwT z--5q~Z^L)t@1R!L_&xj#E`l4Or+1*#`##(W{t@m2KY;tgKf~kTU*Jjbukcj(5me65 z2iff&NpAN@N(GZSs&XJ5)P+(ikfpBNFdaMKfMm>En=lSI;~~AEVoVtJ0K~iPX{}N zQYzR7Nx6DD*gup~!4XI*8`8EOyQEZb5^i6Z+bN-x3N-7z%9V6*K`5nyIY_RT*F%Z9 z#ACNlW4FyY&;4x~N~z$m*sUUVQyJ?1E{@%9kKHu6n2x4`7h|_y#BNJtw`H-LWN!i>MD;S(!m_Sj zRqf&)+_t`u)u3dQh3~lRmd)gGtnNCrs%=T36}F_%@_CiY6KqMLWwrniD_bqol0v)q zs$5v2w3jVcdzr1<#nMH~YpYgN&uLXtwW8t8`sb;cTX;(?ye0E07f0bOw(u6$RxS?1 zTUz#NsfV}3!(+`X!o%oXYT+#on29WTv~XVKf+)NN79Q(QEl_wz=BTw@E!L)4 zuGMoHr?H4dt~{oN9uo^>5!1rjsztV<)uM*!_1{of+Lh0@nC8x_oE^n9+hUqsTRFR6 zO!Kp1nqT%>7}H#jX|BaIx3+4&#WbIo?ucTVWiid1S2-h!X@j8E8)mNUCyr)@N zG0mzit+AxVjoH)m=RN0RHEy6 zb`jI&RjMGe2S3#=Vk({dx`@M)7co8SBBm2L;ZGx)R<(VmRsXWIrq486xQe7Yz2WEe zkMU-jRv8e$^Q)Uzsod70nQYNa)-vxz(>)o@l&ol`)RxxvYU?$TsydIX&LXR`g{pX# zQyQMGKRAkPl0`OgUgd-+vI!R1gxbmp1tXi371^Zh$R>JZ6D_idtR-)ca}tqJj`^M4 zW|3v)jUB}sW$~5Onye^I@V`V{R;}lfywlsVBEOBNS~ae=&u#Xg2s(F&QJ&YEVz1Ss zZwf|iQ(KwI9==gqm9a;kX&^0)tFd$vrx!~-xfRiyYVI!QF7Ps5tR1W0{Baz_q34}3 ztz_yq##8+-C?oWw$6l=ydDvqIBg`8+h~G#nl1(cTYVD9|Wo1$;Xi&j4D#k-4#SgbL zb+CGN+bFUuB{hBKP@Q?Voykk!!YgtNM(kW`7n`HG@w$8|&xD2(q&AOS=ftY?!X-WYy%`{H8il;8_5Ds^|Q zwUek^2espMmOZVzCFy~g;9g9HilE^+9$l>MVi$MIUc!y1Z)S{sTk$9Rm=3Mub|~lF z$ZPFuyj7djAGgza`^p2^wa1#IQf6hLpW#nS9pnj1^=k#4gy z79fo`3038_7cAtc3^&>8+Kx_1Zd^xh5A>G&z(VK9zxYUV?FEf1$tju&_G#=4^DquRf%S(hKo0D@W67|g=lU>4*Avxt8k3tx?b zIfA#DO6#4wm?xxq}$ z31&L~Gj>S6I z!DSwdQuDa*ydnMiS?azi{_ov68UAObt5M-$Pgl3;U*W6OmmSxW7qKat;rO%`rZ5^A z2TGqq`gt^i`JWZdpzyFqBV(kAXk;BcOA)}PCw+cyFnx1^>CeB4#;a{?Ynty5$3jsa zDHH!HcGh&WZPZ5IHZlfQ;__p7EW88uhIc{rluv}$!h2vfycgEO`{1K+GW;2Q5YB-Q zL$x*4LA5pg1bzq~g|gxwgR9`QWpiU*T?AF)zXOkl z@526YF&qZphu6bD!bji-@KN|DsMqu(_zYYIXTZO~x8XnF61W^LhxPD>Jd=;%Zg2(E z`}rB{0zZd`z*X>6_;1(`ehG)b)lentS5W2jH&8ETE4sw*hpk~9Yy)408$hLv61WJK z!LQ+_P-~oR4)sQE4L5|_z>VRya96lJJOJ(hmAH3=7r_qjVz?93tGEYL-mxdV7VZV7 zzhk+?BVT7%Jp;i3?mP ziuX2&@hb7GL%v<@-6mh#E?}Sv3JdD*<>un{OC1coeB7$W{k|ec`sdZU>&+X@bkTqA zUG#j_$Oj|nk6Z^l>V_uUh<_1)`xPP`p%-kRyV-wIDz zefLB*n|9$agl~92<13r#zke4`wSD6L``i#-vJe*LX)0#~z(hQ88jYlJ%wz1l`Awe3 zN7-u{&eKV>p@x^+z^6_5o%&s7Hykv+a`xIo+Cm{U-graK5P$!g^^<-u9}4l(IAelIg=3co%EU@_9)*-HZ13!j;!{t;OXtn|+B$0q6jrzWl7 z_a7#$*}{C{r4FMQ}&e+s-z4jph_cnT5`w)ORjUHD~T6E-Zey{l+ zxHdF;T!}|L^n8zfaNUCUhfUYG0*_YD3X&_r?~0F08a*z@qgBxIJa)(99gQBB;&Er3 z@}ri=KQww&+d<(W00-l73*H7cUE@ML9)+AA;{Lc+HF})CR*x!-*%adJ9FOq_v(x?J z%$wdD)$_WrPYK@1zJEW&LBg^e@s7FMbZ034ME2!1ydO$sqzXayI-J_Ju3qIdC;R7jA;q&Vza$l2<_Pivw=Ov{AjXzhpl(tpFC8dJLaZ~P`4xS7p`p=P+cc%l5P?wYn z<|8R*PX`M^DHXhr^r^XNG@B$}EBq64`xG}xsX)esa`v>1U6+&!^cAMcjC9aGlv2U= zNGf^KLB~)^1$!f@lt~AjLn#%=+)>$-Hp^a8DyYIuB~&`-9ZD%1ilcHa9rVLZ67#4b zxnAamQYxsA-84qTb+sA3-5=>ZbR)%uZb!y$da~}1=N$Gj+SrA*EgieCGiS!O z|5ju;K6WA9qOl8qrleK{txxVsB^|H{D&Ho^;Ivm9^GcgE_irLJUqrO5MIvMg{PzNzW3M#k7=RD#MlL5T9`d{ z;pix)?>%g#ak3C^JYHsYpCCRSq7LHv|MXNoDk2-*nu?$?4k7a0E zQgMPnLd^(XH*Z=k~W z8`HpyNF;F@LM;g}rhz1oX}GqCF%5a?s1IWt+F8QdW4u^9R=>Gp95x-_){~y`bA2ON zm2s^x<^io`>OWBz{%bbR>A8clCD1_IT^V;~r`F_;^u|M0&t27&}1j)AbJ7mk5o^oROWqA?JR z%1{r=|MVD$E656b48$;#`tvfJ&fDr^AY{Xq2ThHE7;a~5jGto0KwO1yAC;i|4vUM-R)eYsph7Zdp|>M^)Btm>$-%0B|&c_ZzZ`YmP#qc-Cy@ux(3P5n1$qL zY=S9rti^FN(tajs9D_?5fpDeWn?@kWqACd%A&oF;G13^5mLQEZX(`e*CM`o6ZPIci z-E&E>0?E%my22W5q zXD9Y(+lr$y0HbD%`_hsd$3X0k1}hTnB|1m`#kywNOB#njD3%KLS?p14i202si7^j} zzqw5+{|^m;xE@UxZdZwhK&a(qJr03Ta6`WT5QwZ`)Qq7P6z_^w>qqfJAhLp4kQ2-z z{&m!)79L5F7y^+Mj9NAtuSN|bO$>oh`-JixwrB`MRxmSif|;d%g|FrU&R54x7|b+$ zW(6}fCz$E{Yhnn*V9uY?7))JmFq3nFnZmy&hCnEoEx1rN-PFX~U?$`QGl_pq41w4a zo8o2lRspMXDuPr^BH8q^qwr{O~QEc_5ohs)t}P-7r|4mAeid8jcEv!KR6 zyaFrWt59PgUV|C~F$dlR=fPXyd^iEV0iT3#LXCk~05t~U_fTUX{s5Q4MNnfP-i4*S zNAJOMxEQKi?tQ2+5FbFju78Cp@jryL#|0n3{_t;b82mfb7>IwsN8ob!DEt`eJzWW( zf&YRt;Aik{xC$np}U^lo2 zJPz&&`@p^64RCKb2JQ>>E*=DLg9pPq;URDq>;~V2hrxH@;qV{u2>1m&61Gx#4>yBH z!L49-xIgRxr@>12Gk7f2OL;PU4fcW>^Uxc922X_;Il*bL4EBNB!ym!D;OX#Ccm_NU zo(TuSv*6|MYjm1nvqig;j7c90P~K@$d?G z7rYWa42Q!h@G7Vgs3YMs@M!z&-Pf{v)7B{7mw0+Mj zDHXhmo2=+`@XJv0@3>^i`FC8B{5vjLeEuDmB>#>}sm;IRlH}iU$)>|t!?YWt9Xc zA+@@svG%hZ_Eq z(|72cjo8I|nyzjfH?Y6Y+NJO-*cC?<4`Q)8WHcj3CSK7?K! z8W`StCyU}UJPc)zHt9eb=EV>ChmLezWTYR8v`j}xhlnjcM`wwBzDpO4eZEUaPUcFE z)5)G03I7dmhhM_GAg@+t5~NAavOT)I!fa2HXM2)T!TtDB`bY;4g;FYb0!b+)9XuUM zDH{Z)RFSq1Sta?x2ud?)>ok&-3U=kGdmJ(+J&qG&w_dTEy;A3A^;J~W)%K~gcc!j- zbloN+H?OU%%YA1WQZu>ap#F3MS+@@>)$bI)ql%{e@KSy^qjO?k2AbHXlR0f;oB0Qp z?Q1uUh7Of73de@WsC%NQPb>9|b0TePk#0<+7g}@a3hOXv`s2yNb1tbJpHjxXBFMF+ zU4Bo8L``W;ueP;S%k6`$<+XiQSWDxI_0TNE2RYg_M6Xq_8#i+o54t4S7ipqNO7-5F z^c<46xXee|o2TXTUwDhlk!auBZ7xG{w@fV6A>D1^O+mWHq(a%wiyS?l(4*`?R#JAh za|XwcOtf<79KBZJPu8C8G&XW5k_z??>``Qh&E`G1tr|@0pju8TXBM^Y##dZk;mjs# z8c=q$u1y0Mav3EkflZa75jyCV@hA(^=(1>&K9#&Xuq(UQb{V5hrRyu9 zMiE>C4}jOfBjIS+7hVqs!3?|tj)B*}YIp~{1>Oh8!Jon!sG(=K!rAaP_^hYO5wimdd2;S(85Fgg8%{RNH5gK5gfB^dv@Q zF0_M_ax>qiCQoAGq#BLM)azStOy&#BrL>&;&}{iN*^>k*6VRkeQ3#q?psBH%ksm#< zf}=EFWawtWSV|QOV>qJ_R&ynV#}w9UY=fpu&$r7OGu)gznC4;e1$&K(g$M2YWqIdE z=hy(p>&UC|u`K>%Kj-K7E2D$p=?hlckm;Z+5A@8 zsb(zY9v+E%imtjFJyj7x$(NDECGh@{GVd7#D?hQ}aj;7^T73y=nyv=Zqelm3Hr zt4aIwT-*lLfR2mJO-Z}fr13~@mp+Abo4LJ@q^d=E@FkLlUX)w)<9A3U8eA0o!6XgU zdB-FbF~2vdE5D0OI+)*gO=37v@SaH({4O?0O%?B(M8=nA@t(;MWm!>aa9wF`(WARf zTD&?(*`au6(?w6bvWCL1VBd{BiU+Z!rB3qe!OqDq|2ii>C$xepdwQYfrW^X6R<(+j z!UbKnRo#huKa-tp?PCkO<72e>GmlM=EmVm5j)6@fuA&I+h@3ylP9c6IZ|-p=9`*e4 zJyzgaL6T%sh%4||c*x+1_{cPRT&B_&r~DA*aY3WUC3xIC_UNsXpYdM>K(r}+P36yi z>?)qLQG8iZJQ8-~|J86$cny?N89ZkL_-Gi+s8N$^%SeZO_FzTu&F~TaQ|wt0Oankh zO(HdLCZqu|BUSzw{sGdEm{|fDgqM-#C>CwX(|h5DToc!u*%;mjw}AJ<9Uv3@WOjiM z!9(D~Pzrq%o(3@pZQ$QyP(}0O@Cx`-$h`y%_RC1GPebAgo`Da-XW>uaboe~{8Pr4r z&%xR7=Wsrp0j2JjpuPim8EU8)elwrKS+EuQeFbg^Uxn@9Yfz1!gq2}%WbiAvJ$zlq zx&Kp;-4u|Nwgn_4d96#isn@zBd96$Ns@J+Cd96!1lh?W=rGnQ9S@~8vcq5cjfodem z)zUV7kR+dwQTbrnM#xI?m57uNrmdq;QYughshl%yCY+>{P1mTLGi~dUNJ<5};ZJ#O zI@l|eQb8?}-y3PbB(6Djn;E{dcper_t1XwZt?y2Ng0#BL1K4C5FRyN!+A zrp9j5VmC8~`bXx_e#R z=}r4hJ+DIxO`>x-LncvnD92kUg+F1*_NOlkT4oxlSe9v&9g1GxCTyVWwyF9V<}d$y z6V-w{@Rd3B@Ym-ZuA$0(z62{Nc!p6^* zR-Ip3Q_6=hRE%j&%lZC8SJ>=U$OQT$Ny|;34@_z_fz0o}BnN-N|sp3d~?jSNq-lb(UyUwjUOMZ!= zb7c64cdgy<@wPriP{FPOI*JIfrIt_LR~G+smXB)O&09V)0E@DGj=|#?b~c$GOSp-72|MEc8>r(H@@Dw_4(iK=-$V7v@-;wa3|tKF zhVR42;2+^r@B{dBxCG9I6lWP}@6dv zM*reKQp&zFP%fFaRt`z2;CX4w+|LQz9p8F3f{v_xm7xlekG-Xw4rGnjYQy!YOZx1A;%yjm9 zQ|ayZ_IxO%Wgv!be~#Tq1EHHtLq8Y2hHlDh-A#F|hbL3r-Oh>KZj9Y-j@_olZZc^6 zTnw5qE2f}`td{ff8q838w|-@}xbTYp+6;vfa*da$A-y9R(YiIH|D#Q#!DP`_dwjz; zabeTpUF+4L)q+NKwS9SW_`FIzX`AJ3xlO#b9K%6VQ=PW9K;;tM?9SLXWiJF6OiOE8VNllgS!xreEydkDE^Am&zrS4r%abrM zBB3psSGh0>je-7z#`m`i6&igAi_2apjf|zZC9ZV?@hmQTRq-qe<5^_!@Yz8)=VHTi z^<<>}a28lR^XFC0jpCVW@yxBQoEyfIH7J?BiUnD^Ur_d<;+Y@DGvDIjqXXt*Y+X~i zfOsy5;+bvn%$irJdZuY-ro}Upk^GA1^kh<)ofXe)CTuKxr?bmm(-q7LuYd^+nR1Yi z5tyTqE12CdseUQZSu&hqS1^5E<+SJurr8xttF4??@J?rBUBL|Rm6;y)%1pOjnd#~j z*7)xk4bL^u4yaXSERrenD(j+1>MWAF+R8db(kFSFQ?nwOT3hHYcVgznTHWN7@Fu6& zP4d;jRQn)fYQz26Z^Syz)~3E7P1VLmC1OWieY4x4_&AeS%ts>YyC!BN$IbhWlyHwF zIhWhqwQ7hfx7i-t-aVLTl$VwV7bER$()F?19HhP;GDqC@o`KZe{B6e(m-Onp?fnqa z(RQ>AnV?G=NpP3B9gpO(Y5agoqma(FI5J2YLsSw>LORE!$w>W8szW-@q$x=KOqv=W zorZL-xlNDVW+0t!Zd!oo0+SH(njdH3I0g5}I6e>aI(vNYAkIvV@6|c-FFw?a72eqO zrC2K1`?E)}AvSA@uXTKH{!C)YM#`>9Q@v}lk+N&@v+FL&&#w1Zv*rIxe_J(L`!hRR z)HG;=FYTYKV42Ilf_ZkU=W)2wh@?&3bh3hX<^hJ?bW7s%bWp8`9ds~%%l%ZZpBv2FoM0C4Pi94dt5M6M%1kz0_pIDtX66K=@w`op z;MLU(XcGrBJvW$XIl;`(zrt5@9U*8q5u2`NN^US3iR+I>2dDBcYXoo96RPI8Xw&

Qjk2!rZvX3uq~ae+nOgPrzs4lkgYt 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 diff --git a/win32/libs/libtiff.dll b/win32/libs/libtiff.dll deleted file mode 100644 index d31fbbc6cde45cce664ba66a1b6dedd53a028b3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 451072 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%0D2?#U&7FmQSH_DZ{Jh)?Y)NP@*nz$;}{! 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 z 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

  • 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⪙4+J+6`ENSfc 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 xi?&d(u>oI03on}Xd3m0=elzknufLp

  • &HIn*G9<(RjGx!Zfd0#+( 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 */ -#define COMPRESSION_DCS 32947 /* Kodak DCS encoding */ -#define COMPRESSION_JBIG 34661 /* ISO JBIG */ -#define COMPRESSION_SGILOG 34676 /* SGI Log Luminance RLE */ -#define COMPRESSION_SGILOG24 34677 /* SGI Log 24-bit packed */ -#define COMPRESSION_JP2000 34712 /* Leadtools JPEG2000 */ -#define COMPRESSION_LZMA 34925 /* LZMA2 */ -#define TIFFTAG_PHOTOMETRIC 262 /* photometric interpretation */ -#define PHOTOMETRIC_MINISWHITE 0 /* min value is white */ -#define PHOTOMETRIC_MINISBLACK 1 /* min value is black */ -#define PHOTOMETRIC_RGB 2 /* RGB color model */ -#define PHOTOMETRIC_PALETTE 3 /* color map indexed */ -#define PHOTOMETRIC_MASK 4 /* $holdout mask */ -#define PHOTOMETRIC_SEPARATED 5 /* !color separations */ -#define PHOTOMETRIC_YCBCR 6 /* !CCIR 601 */ -#define PHOTOMETRIC_CIELAB 8 /* !1976 CIE L*a*b* */ -#define PHOTOMETRIC_ICCLAB 9 /* ICC L*a*b* [Adobe TIFF Technote 4] */ -#define PHOTOMETRIC_ITULAB 10 /* ITU L*a*b* */ -#define PHOTOMETRIC_LOGL 32844 /* CIE Log2(L) */ -#define PHOTOMETRIC_LOGLUV 32845 /* CIE Log2(L) (u',v') */ -#define TIFFTAG_THRESHHOLDING 263 /* +thresholding used on data */ -#define THRESHHOLD_BILEVEL 1 /* b&w art scan */ -#define THRESHHOLD_HALFTONE 2 /* or dithered scan */ -#define THRESHHOLD_ERRORDIFFUSE 3 /* usually floyd-steinberg */ -#define TIFFTAG_CELLWIDTH 264 /* +dithering matrix width */ -#define TIFFTAG_CELLLENGTH 265 /* +dithering matrix height */ -#define TIFFTAG_FILLORDER 266 /* data order within a byte */ -#define FILLORDER_MSB2LSB 1 /* most significant -> least */ -#define FILLORDER_LSB2MSB 2 /* least significant -> most */ -#define TIFFTAG_DOCUMENTNAME 269 /* name of doc. image is from */ -#define TIFFTAG_IMAGEDESCRIPTION 270 /* info about image */ -#define TIFFTAG_MAKE 271 /* scanner manufacturer name */ -#define TIFFTAG_MODEL 272 /* scanner model name/number */ -#define TIFFTAG_STRIPOFFSETS 273 /* offsets to data strips */ -#define TIFFTAG_ORIENTATION 274 /* +image orientation */ -#define ORIENTATION_TOPLEFT 1 /* row 0 top, col 0 lhs */ -#define ORIENTATION_TOPRIGHT 2 /* row 0 top, col 0 rhs */ -#define ORIENTATION_BOTRIGHT 3 /* row 0 bottom, col 0 rhs */ -#define ORIENTATION_BOTLEFT 4 /* row 0 bottom, col 0 lhs */ -#define ORIENTATION_LEFTTOP 5 /* row 0 lhs, col 0 top */ -#define ORIENTATION_RIGHTTOP 6 /* row 0 rhs, col 0 top */ -#define ORIENTATION_RIGHTBOT 7 /* row 0 rhs, col 0 bottom */ -#define ORIENTATION_LEFTBOT 8 /* row 0 lhs, col 0 bottom */ -#define TIFFTAG_SAMPLESPERPIXEL 277 /* samples per pixel */ -#define TIFFTAG_ROWSPERSTRIP 278 /* rows per strip of data */ -#define TIFFTAG_STRIPBYTECOUNTS 279 /* bytes counts for strips */ -#define TIFFTAG_MINSAMPLEVALUE 280 /* +minimum sample value */ -#define TIFFTAG_MAXSAMPLEVALUE 281 /* +maximum sample value */ -#define TIFFTAG_XRESOLUTION 282 /* pixels/resolution in x */ -#define TIFFTAG_YRESOLUTION 283 /* pixels/resolution in y */ -#define TIFFTAG_PLANARCONFIG 284 /* storage organization */ -#define PLANARCONFIG_CONTIG 1 /* single image plane */ -#define PLANARCONFIG_SEPARATE 2 /* separate planes of data */ -#define TIFFTAG_PAGENAME 285 /* page name image is from */ -#define TIFFTAG_XPOSITION 286 /* x page offset of image lhs */ -#define TIFFTAG_YPOSITION 287 /* y page offset of image lhs */ -#define TIFFTAG_FREEOFFSETS 288 /* +byte offset to free block */ -#define TIFFTAG_FREEBYTECOUNTS 289 /* +sizes of free blocks */ -#define TIFFTAG_GRAYRESPONSEUNIT 290 /* $gray scale curve accuracy */ -#define GRAYRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define GRAYRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define GRAYRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define GRAYRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define GRAYRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_GRAYRESPONSECURVE 291 /* $gray scale response curve */ -#define TIFFTAG_GROUP3OPTIONS 292 /* 32 flag bits */ -#define TIFFTAG_T4OPTIONS 292 /* TIFF 6.0 proper name alias */ -#define GROUP3OPT_2DENCODING 0x1 /* 2-dimensional coding */ -#define GROUP3OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define GROUP3OPT_FILLBITS 0x4 /* fill to byte boundary */ -#define TIFFTAG_GROUP4OPTIONS 293 /* 32 flag bits */ -#define TIFFTAG_T6OPTIONS 293 /* TIFF 6.0 proper name */ -#define GROUP4OPT_UNCOMPRESSED 0x2 /* data not compressed */ -#define TIFFTAG_RESOLUTIONUNIT 296 /* units of resolutions */ -#define RESUNIT_NONE 1 /* no meaningful units */ -#define RESUNIT_INCH 2 /* english */ -#define RESUNIT_CENTIMETER 3 /* metric */ -#define TIFFTAG_PAGENUMBER 297 /* page numbers of multi-page */ -#define TIFFTAG_COLORRESPONSEUNIT 300 /* $color curve accuracy */ -#define COLORRESPONSEUNIT_10S 1 /* tenths of a unit */ -#define COLORRESPONSEUNIT_100S 2 /* hundredths of a unit */ -#define COLORRESPONSEUNIT_1000S 3 /* thousandths of a unit */ -#define COLORRESPONSEUNIT_10000S 4 /* ten-thousandths of a unit */ -#define COLORRESPONSEUNIT_100000S 5 /* hundred-thousandths */ -#define TIFFTAG_TRANSFERFUNCTION 301 /* !colorimetry info */ -#define TIFFTAG_SOFTWARE 305 /* name & release */ -#define TIFFTAG_DATETIME 306 /* creation date and time */ -#define TIFFTAG_ARTIST 315 /* creator of image */ -#define TIFFTAG_HOSTCOMPUTER 316 /* machine where created */ -#define TIFFTAG_PREDICTOR 317 /* prediction scheme w/ LZW */ -#define PREDICTOR_NONE 1 /* no prediction scheme used */ -#define PREDICTOR_HORIZONTAL 2 /* horizontal differencing */ -#define PREDICTOR_FLOATINGPOINT 3 /* floating point predictor */ -#define TIFFTAG_WHITEPOINT 318 /* image white point */ -#define TIFFTAG_PRIMARYCHROMATICITIES 319 /* !primary chromaticities */ -#define TIFFTAG_COLORMAP 320 /* RGB map for pallette image */ -#define TIFFTAG_HALFTONEHINTS 321 /* !highlight+shadow info */ -#define TIFFTAG_TILEWIDTH 322 /* !tile width in pixels */ -#define TIFFTAG_TILELENGTH 323 /* !tile height in pixels */ -#define TIFFTAG_TILEOFFSETS 324 /* !offsets to data tiles */ -#define TIFFTAG_TILEBYTECOUNTS 325 /* !byte counts for tiles */ -#define TIFFTAG_BADFAXLINES 326 /* lines w/ wrong pixel count */ -#define TIFFTAG_CLEANFAXDATA 327 /* regenerated line info */ -#define CLEANFAXDATA_CLEAN 0 /* no errors detected */ -#define CLEANFAXDATA_REGENERATED 1 /* receiver regenerated lines */ -#define CLEANFAXDATA_UNCLEAN 2 /* uncorrected errors exist */ -#define TIFFTAG_CONSECUTIVEBADFAXLINES 328 /* max consecutive bad lines */ -#define TIFFTAG_SUBIFD 330 /* subimage descriptors */ -#define TIFFTAG_INKSET 332 /* !inks in separated image */ -#define INKSET_CMYK 1 /* !cyan-magenta-yellow-black color */ -#define INKSET_MULTIINK 2 /* !multi-ink or hi-fi color */ -#define TIFFTAG_INKNAMES 333 /* !ascii names of inks */ -#define TIFFTAG_NUMBEROFINKS 334 /* !number of inks */ -#define TIFFTAG_DOTRANGE 336 /* !0% and 100% dot codes */ -#define TIFFTAG_TARGETPRINTER 337 /* !separation target */ -#define TIFFTAG_EXTRASAMPLES 338 /* !info about extra samples */ -#define EXTRASAMPLE_UNSPECIFIED 0 /* !unspecified data */ -#define EXTRASAMPLE_ASSOCALPHA 1 /* !associated alpha data */ -#define EXTRASAMPLE_UNASSALPHA 2 /* !unassociated alpha data */ -#define TIFFTAG_SAMPLEFORMAT 339 /* !data sample format */ -#define SAMPLEFORMAT_UINT 1 /* !unsigned integer data */ -#define SAMPLEFORMAT_INT 2 /* !signed integer data */ -#define SAMPLEFORMAT_IEEEFP 3 /* !IEEE floating point data */ -#define SAMPLEFORMAT_VOID 4 /* !untyped data */ -#define SAMPLEFORMAT_COMPLEXINT 5 /* !complex signed int */ -#define SAMPLEFORMAT_COMPLEXIEEEFP 6 /* !complex ieee floating */ -#define TIFFTAG_SMINSAMPLEVALUE 340 /* !variable MinSampleValue */ -#define TIFFTAG_SMAXSAMPLEVALUE 341 /* !variable MaxSampleValue */ -#define TIFFTAG_CLIPPATH 343 /* %ClipPath - [Adobe TIFF technote 2] */ -#define TIFFTAG_XCLIPPATHUNITS 344 /* %XClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_YCLIPPATHUNITS 345 /* %YClipPathUnits - [Adobe TIFF technote 2] */ -#define TIFFTAG_INDEXED 346 /* %Indexed - [Adobe TIFF Technote 3] */ -#define TIFFTAG_JPEGTABLES 347 /* %JPEG table stream */ -#define TIFFTAG_OPIPROXY 351 /* %OPI Proxy [Adobe TIFF technote] */ -/* Tags 400-435 are from the TIFF/FX spec */ -#define TIFFTAG_GLOBALPARAMETERSIFD 400 /* ! */ -#define TIFFTAG_PROFILETYPE 401 /* ! */ -#define PROFILETYPE_UNSPECIFIED 0 /* ! */ -#define PROFILETYPE_G3_FAX 1 /* ! */ -#define TIFFTAG_FAXPROFILE 402 /* ! */ -#define FAXPROFILE_S 1 /* !TIFF/FX FAX profile S */ -#define FAXPROFILE_F 2 /* !TIFF/FX FAX profile F */ -#define FAXPROFILE_J 3 /* !TIFF/FX FAX profile J */ -#define FAXPROFILE_C 4 /* !TIFF/FX FAX profile C */ -#define FAXPROFILE_L 5 /* !TIFF/FX FAX profile L */ -#define FAXPROFILE_M 6 /* !TIFF/FX FAX profile LM */ -#define TIFFTAG_CODINGMETHODS 403 /* !TIFF/FX coding methods */ -#define CODINGMETHODS_T4_1D (1 << 1) /* !T.4 1D */ -#define CODINGMETHODS_T4_2D (1 << 2) /* !T.4 2D */ -#define CODINGMETHODS_T6 (1 << 3) /* !T.6 */ -#define CODINGMETHODS_T85 (1 << 4) /* !T.85 JBIG */ -#define CODINGMETHODS_T42 (1 << 5) /* !T.42 JPEG */ -#define CODINGMETHODS_T43 (1 << 6) /* !T.43 colour by layered JBIG */ -#define TIFFTAG_VERSIONYEAR 404 /* !TIFF/FX version year */ -#define TIFFTAG_MODENUMBER 405 /* !TIFF/FX mode number */ -#define TIFFTAG_DECODE 433 /* !TIFF/FX decode */ -#define TIFFTAG_IMAGEBASECOLOR 434 /* !TIFF/FX image base colour */ -#define TIFFTAG_T82OPTIONS 435 /* !TIFF/FX T.82 options */ -/* - * Tags 512-521 are obsoleted by Technical Note #2 which specifies a - * revised JPEG-in-TIFF scheme. - */ -#define TIFFTAG_JPEGPROC 512 /* !JPEG processing algorithm */ -#define JPEGPROC_BASELINE 1 /* !baseline sequential */ -#define JPEGPROC_LOSSLESS 14 /* !Huffman coded lossless */ -#define TIFFTAG_JPEGIFOFFSET 513 /* !pointer to SOI marker */ -#define TIFFTAG_JPEGIFBYTECOUNT 514 /* !JFIF stream length */ -#define TIFFTAG_JPEGRESTARTINTERVAL 515 /* !restart interval length */ -#define TIFFTAG_JPEGLOSSLESSPREDICTORS 517 /* !lossless proc predictor */ -#define TIFFTAG_JPEGPOINTTRANSFORM 518 /* !lossless point transform */ -#define TIFFTAG_JPEGQTABLES 519 /* !Q matrice offsets */ -#define TIFFTAG_JPEGDCTABLES 520 /* !DCT table offsets */ -#define TIFFTAG_JPEGACTABLES 521 /* !AC coefficient offsets */ -#define TIFFTAG_YCBCRCOEFFICIENTS 529 /* !RGB -> YCbCr transform */ -#define TIFFTAG_YCBCRSUBSAMPLING 530 /* !YCbCr subsampling factors */ -#define TIFFTAG_YCBCRPOSITIONING 531 /* !subsample positioning */ -#define YCBCRPOSITION_CENTERED 1 /* !as in PostScript Level 2 */ -#define YCBCRPOSITION_COSITED 2 /* !as in CCIR 601-1 */ -#define TIFFTAG_REFERENCEBLACKWHITE 532 /* !colorimetry info */ -#define TIFFTAG_STRIPROWCOUNTS 559 /* !TIFF/FX strip row counts */ -#define TIFFTAG_XMLPACKET 700 /* %XML packet - [Adobe XMP Specification, - January 2004 */ -#define TIFFTAG_OPIIMAGEID 32781 /* %OPI ImageID - [Adobe TIFF technote] */ -/* tags 32952-32956 are private tags registered to Island Graphics */ -#define TIFFTAG_REFPTS 32953 /* image reference points */ -#define TIFFTAG_REGIONTACKPOINT 32954 /* region-xform tack point */ -#define TIFFTAG_REGIONWARPCORNERS 32955 /* warp quadrilateral */ -#define TIFFTAG_REGIONAFFINE 32956 /* affine transformation mat */ -/* tags 32995-32999 are private tags registered to SGI */ -#define TIFFTAG_MATTEING 32995 /* $use ExtraSamples */ -#define TIFFTAG_DATATYPE 32996 /* $use SampleFormat */ -#define TIFFTAG_IMAGEDEPTH 32997 /* z depth of image */ -#define TIFFTAG_TILEDEPTH 32998 /* z depth/data tile */ -/* tags 33300-33309 are private tags registered to Pixar */ -/* - * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH - * are set when an image has been cropped out of a larger image. - * They reflect the size of the original uncropped image. - * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used - * to determine the position of the smaller image in the larger one. - */ -#define TIFFTAG_PIXAR_IMAGEFULLWIDTH 33300 /* full image size in x */ -#define TIFFTAG_PIXAR_IMAGEFULLLENGTH 33301 /* full image size in y */ - /* Tags 33302-33306 are used to identify special image modes and data - * used by Pixar's texture formats. - */ -#define TIFFTAG_PIXAR_TEXTUREFORMAT 33302 /* texture map format */ -#define TIFFTAG_PIXAR_WRAPMODES 33303 /* s & t wrap modes */ -#define TIFFTAG_PIXAR_FOVCOT 33304 /* cotan(fov) for env. maps */ -#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN 33305 -#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA 33306 -/* tag 33405 is a private tag registered to Eastman Kodak */ -#define TIFFTAG_WRITERSERIALNUMBER 33405 /* device serial number */ -/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */ -#define TIFFTAG_COPYRIGHT 33432 /* copyright string */ -/* IPTC TAG from RichTIFF specifications */ -#define TIFFTAG_RICHTIFFIPTC 33723 -/* 34016-34029 are reserved for ANSI IT8 TIFF/IT */ -#define TIFFTAG_STONITS 37439 /* Sample value to Nits */ -/* tag 34929 is a private tag registered to FedEx */ -#define TIFFTAG_FEDEX_EDR 34929 /* unknown use */ -#define TIFFTAG_INTEROPERABILITYIFD 40965 /* Pointer to Interoperability private directory */ -/* Adobe Digital Negative (DNG) format tags */ -#define TIFFTAG_DNGVERSION 50706 /* &DNG version number */ -#define TIFFTAG_DNGBACKWARDVERSION 50707 /* &DNG compatibility version */ -#define TIFFTAG_UNIQUECAMERAMODEL 50708 /* &name for the camera model */ -#define TIFFTAG_LOCALIZEDCAMERAMODEL 50709 /* &localized camera model - name */ -#define TIFFTAG_CFAPLANECOLOR 50710 /* &CFAPattern->LinearRaw space - mapping */ -#define TIFFTAG_CFALAYOUT 50711 /* &spatial layout of the CFA */ -#define TIFFTAG_LINEARIZATIONTABLE 50712 /* &lookup table description */ -#define TIFFTAG_BLACKLEVELREPEATDIM 50713 /* &repeat pattern size for - the BlackLevel tag */ -#define TIFFTAG_BLACKLEVEL 50714 /* &zero light encoding level */ -#define TIFFTAG_BLACKLEVELDELTAH 50715 /* &zero light encoding level - differences (columns) */ -#define TIFFTAG_BLACKLEVELDELTAV 50716 /* &zero light encoding level - differences (rows) */ -#define TIFFTAG_WHITELEVEL 50717 /* &fully saturated encoding - level */ -#define TIFFTAG_DEFAULTSCALE 50718 /* &default scale factors */ -#define TIFFTAG_DEFAULTCROPORIGIN 50719 /* &origin of the final image - area */ -#define TIFFTAG_DEFAULTCROPSIZE 50720 /* &size of the final image - area */ -#define TIFFTAG_COLORMATRIX1 50721 /* &XYZ->reference color space - transformation matrix 1 */ -#define TIFFTAG_COLORMATRIX2 50722 /* &XYZ->reference color space - transformation matrix 2 */ -#define TIFFTAG_CAMERACALIBRATION1 50723 /* &calibration matrix 1 */ -#define TIFFTAG_CAMERACALIBRATION2 50724 /* &calibration matrix 2 */ -#define TIFFTAG_REDUCTIONMATRIX1 50725 /* &dimensionality reduction - matrix 1 */ -#define TIFFTAG_REDUCTIONMATRIX2 50726 /* &dimensionality reduction - matrix 2 */ -#define TIFFTAG_ANALOGBALANCE 50727 /* &gain applied the stored raw - values*/ -#define TIFFTAG_ASSHOTNEUTRAL 50728 /* &selected white balance in - linear reference space */ -#define TIFFTAG_ASSHOTWHITEXY 50729 /* &selected white balance in - x-y chromaticity - coordinates */ -#define TIFFTAG_BASELINEEXPOSURE 50730 /* &how much to move the zero - point */ -#define TIFFTAG_BASELINENOISE 50731 /* &relative noise level */ -#define TIFFTAG_BASELINESHARPNESS 50732 /* &relative amount of - sharpening */ -#define TIFFTAG_BAYERGREENSPLIT 50733 /* &how closely the values of - the green pixels in the - blue/green rows track the - values of the green pixels - in the red/green rows */ -#define TIFFTAG_LINEARRESPONSELIMIT 50734 /* &non-linear encoding range */ -#define TIFFTAG_CAMERASERIALNUMBER 50735 /* &camera's serial number */ -#define TIFFTAG_LENSINFO 50736 /* info about the lens */ -#define TIFFTAG_CHROMABLURRADIUS 50737 /* &chroma blur radius */ -#define TIFFTAG_ANTIALIASSTRENGTH 50738 /* &relative strength of the - camera's anti-alias filter */ -#define TIFFTAG_SHADOWSCALE 50739 /* &used by Adobe Camera Raw */ -#define TIFFTAG_DNGPRIVATEDATA 50740 /* &manufacturer's private data */ -#define TIFFTAG_MAKERNOTESAFETY 50741 /* &whether the EXIF MakerNote - tag is safe to preserve - along with the rest of the - EXIF data */ -#define TIFFTAG_CALIBRATIONILLUMINANT1 50778 /* &illuminant 1 */ -#define TIFFTAG_CALIBRATIONILLUMINANT2 50779 /* &illuminant 2 */ -#define TIFFTAG_BESTQUALITYSCALE 50780 /* &best quality multiplier */ -#define TIFFTAG_RAWDATAUNIQUEID 50781 /* &unique identifier for - the raw image data */ -#define TIFFTAG_ORIGINALRAWFILENAME 50827 /* &file name of the original - raw file */ -#define TIFFTAG_ORIGINALRAWFILEDATA 50828 /* &contents of the original - raw file */ -#define TIFFTAG_ACTIVEAREA 50829 /* &active (non-masked) pixels - of the sensor */ -#define TIFFTAG_MASKEDAREAS 50830 /* &list of coordinates - of fully masked pixels */ -#define TIFFTAG_ASSHOTICCPROFILE 50831 /* &these two tags used to */ -#define TIFFTAG_ASSHOTPREPROFILEMATRIX 50832 /* map cameras's color space - into ICC profile space */ -#define TIFFTAG_CURRENTICCPROFILE 50833 /* & */ -#define TIFFTAG_CURRENTPREPROFILEMATRIX 50834 /* & */ -/* tag 65535 is an undefined tag used by Eastman Kodak */ -#define TIFFTAG_DCSHUESHIFTVALUES 65535 /* hue shift correction data */ - -/* - * The following are ``pseudo tags'' that can be used to control - * codec-specific functionality. These tags are not written to file. - * Note that these values start at 0xffff+1 so that they'll never - * collide with Aldus-assigned tags. - * - * If you want your private pseudo tags ``registered'' (i.e. added to - * this file), please post a bug report via the tracking system at - * http://www.remotesensing.org/libtiff/bugs.html with the appropriate - * C definitions to add. - */ -#define TIFFTAG_FAXMODE 65536 /* Group 3/4 format control */ -#define FAXMODE_CLASSIC 0x0000 /* default, include RTC */ -#define FAXMODE_NORTC 0x0001 /* no RTC at end of data */ -#define FAXMODE_NOEOL 0x0002 /* no EOL code at end of row */ -#define FAXMODE_BYTEALIGN 0x0004 /* byte align row */ -#define FAXMODE_WORDALIGN 0x0008 /* word align row */ -#define FAXMODE_CLASSF FAXMODE_NORTC /* TIFF Class F */ -#define TIFFTAG_JPEGQUALITY 65537 /* Compression quality level */ -/* Note: quality level is on the IJG 0-100 scale. Default value is 75 */ -#define TIFFTAG_JPEGCOLORMODE 65538 /* Auto RGB<=>YCbCr convert? */ -#define JPEGCOLORMODE_RAW 0x0000 /* no conversion (default) */ -#define JPEGCOLORMODE_RGB 0x0001 /* do auto conversion */ -#define TIFFTAG_JPEGTABLESMODE 65539 /* What to put in JPEGTables */ -#define JPEGTABLESMODE_QUANT 0x0001 /* include quantization tbls */ -#define JPEGTABLESMODE_HUFF 0x0002 /* include Huffman tbls */ -/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */ -#define TIFFTAG_FAXFILLFUNC 65540 /* G3/G4 fill function */ -#define TIFFTAG_PIXARLOGDATAFMT 65549 /* PixarLogCodec I/O data sz */ -#define PIXARLOGDATAFMT_8BIT 0 /* regular u_char samples */ -#define PIXARLOGDATAFMT_8BITABGR 1 /* ABGR-order u_chars */ -#define PIXARLOGDATAFMT_11BITLOG 2 /* 11-bit log-encoded (raw) */ -#define PIXARLOGDATAFMT_12BITPICIO 3 /* as per PICIO (1.0==2048) */ -#define PIXARLOGDATAFMT_16BIT 4 /* signed short samples */ -#define PIXARLOGDATAFMT_FLOAT 5 /* IEEE float samples */ -/* 65550-65556 are allocated to Oceana Matrix */ -#define TIFFTAG_DCSIMAGERTYPE 65550 /* imager model & filter */ -#define DCSIMAGERMODEL_M3 0 /* M3 chip (1280 x 1024) */ -#define DCSIMAGERMODEL_M5 1 /* M5 chip (1536 x 1024) */ -#define DCSIMAGERMODEL_M6 2 /* M6 chip (3072 x 2048) */ -#define DCSIMAGERFILTER_IR 0 /* infrared filter */ -#define DCSIMAGERFILTER_MONO 1 /* monochrome filter */ -#define DCSIMAGERFILTER_CFA 2 /* color filter array */ -#define DCSIMAGERFILTER_OTHER 3 /* other filter */ -#define TIFFTAG_DCSINTERPMODE 65551 /* interpolation mode */ -#define DCSINTERPMODE_NORMAL 0x0 /* whole image, default */ -#define DCSINTERPMODE_PREVIEW 0x1 /* preview of image (384x256) */ -#define TIFFTAG_DCSBALANCEARRAY 65552 /* color balance values */ -#define TIFFTAG_DCSCORRECTMATRIX 65553 /* color correction values */ -#define TIFFTAG_DCSGAMMA 65554 /* gamma value */ -#define TIFFTAG_DCSTOESHOULDERPTS 65555 /* toe & shoulder points */ -#define TIFFTAG_DCSCALIBRATIONFD 65556 /* calibration file desc */ -/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */ -#define TIFFTAG_ZIPQUALITY 65557 /* compression quality level */ -#define TIFFTAG_PIXARLOGQUALITY 65558 /* PixarLog uses same scale */ -/* 65559 is allocated to Oceana Matrix */ -#define TIFFTAG_DCSCLIPRECTANGLE 65559 /* area of image to acquire */ -#define TIFFTAG_SGILOGDATAFMT 65560 /* SGILog user data format */ -#define SGILOGDATAFMT_FLOAT 0 /* IEEE float samples */ -#define SGILOGDATAFMT_16BIT 1 /* 16-bit samples */ -#define SGILOGDATAFMT_RAW 2 /* uninterpreted data */ -#define SGILOGDATAFMT_8BIT 3 /* 8-bit RGB monitor values */ -#define TIFFTAG_SGILOGENCODE 65561 /* SGILog data encoding control*/ -#define SGILOGENCODE_NODITHER 0 /* do not dither encoded values*/ -#define SGILOGENCODE_RANDITHER 1 /* randomly dither encd values */ -#define TIFFTAG_LZMAPRESET 65562 /* LZMA2 preset (compression level) */ -#define TIFFTAG_PERSAMPLE 65563 /* interface for per sample tags */ -#define PERSAMPLE_MERGED 0 /* present as a single value */ -#define PERSAMPLE_MULTI 1 /* present as multiple values */ - -/* - * EXIF tags - */ -#define EXIFTAG_EXPOSURETIME 33434 /* Exposure time */ -#define EXIFTAG_FNUMBER 33437 /* F number */ -#define EXIFTAG_EXPOSUREPROGRAM 34850 /* Exposure program */ -#define EXIFTAG_SPECTRALSENSITIVITY 34852 /* Spectral sensitivity */ -#define EXIFTAG_ISOSPEEDRATINGS 34855 /* ISO speed rating */ -#define EXIFTAG_OECF 34856 /* Optoelectric conversion - factor */ -#define EXIFTAG_EXIFVERSION 36864 /* Exif version */ -#define EXIFTAG_DATETIMEORIGINAL 36867 /* Date and time of original - data generation */ -#define EXIFTAG_DATETIMEDIGITIZED 36868 /* Date and time of digital - data generation */ -#define EXIFTAG_COMPONENTSCONFIGURATION 37121 /* Meaning of each component */ -#define EXIFTAG_COMPRESSEDBITSPERPIXEL 37122 /* Image compression mode */ -#define EXIFTAG_SHUTTERSPEEDVALUE 37377 /* Shutter speed */ -#define EXIFTAG_APERTUREVALUE 37378 /* Aperture */ -#define EXIFTAG_BRIGHTNESSVALUE 37379 /* Brightness */ -#define EXIFTAG_EXPOSUREBIASVALUE 37380 /* Exposure bias */ -#define EXIFTAG_MAXAPERTUREVALUE 37381 /* Maximum lens aperture */ -#define EXIFTAG_SUBJECTDISTANCE 37382 /* Subject distance */ -#define EXIFTAG_METERINGMODE 37383 /* Metering mode */ -#define EXIFTAG_LIGHTSOURCE 37384 /* Light source */ -#define EXIFTAG_FLASH 37385 /* Flash */ -#define EXIFTAG_FOCALLENGTH 37386 /* Lens focal length */ -#define EXIFTAG_SUBJECTAREA 37396 /* Subject area */ -#define EXIFTAG_MAKERNOTE 37500 /* Manufacturer notes */ -#define EXIFTAG_USERCOMMENT 37510 /* User comments */ -#define EXIFTAG_SUBSECTIME 37520 /* DateTime subseconds */ -#define EXIFTAG_SUBSECTIMEORIGINAL 37521 /* DateTimeOriginal subseconds */ -#define EXIFTAG_SUBSECTIMEDIGITIZED 37522 /* DateTimeDigitized subseconds */ -#define EXIFTAG_FLASHPIXVERSION 40960 /* Supported Flashpix version */ -#define EXIFTAG_COLORSPACE 40961 /* Color space information */ -#define EXIFTAG_PIXELXDIMENSION 40962 /* Valid image width */ -#define EXIFTAG_PIXELYDIMENSION 40963 /* Valid image height */ -#define EXIFTAG_RELATEDSOUNDFILE 40964 /* Related audio file */ -#define EXIFTAG_FLASHENERGY 41483 /* Flash energy */ -#define EXIFTAG_SPATIALFREQUENCYRESPONSE 41484 /* Spatial frequency response */ -#define EXIFTAG_FOCALPLANEXRESOLUTION 41486 /* Focal plane X resolution */ -#define EXIFTAG_FOCALPLANEYRESOLUTION 41487 /* Focal plane Y resolution */ -#define EXIFTAG_FOCALPLANERESOLUTIONUNIT 41488 /* Focal plane resolution unit */ -#define EXIFTAG_SUBJECTLOCATION 41492 /* Subject location */ -#define EXIFTAG_EXPOSUREINDEX 41493 /* Exposure index */ -#define EXIFTAG_SENSINGMETHOD 41495 /* Sensing method */ -#define EXIFTAG_FILESOURCE 41728 /* File source */ -#define EXIFTAG_SCENETYPE 41729 /* Scene type */ -#define EXIFTAG_CFAPATTERN 41730 /* CFA pattern */ -#define EXIFTAG_CUSTOMRENDERED 41985 /* Custom image processing */ -#define EXIFTAG_EXPOSUREMODE 41986 /* Exposure mode */ -#define EXIFTAG_WHITEBALANCE 41987 /* White balance */ -#define EXIFTAG_DIGITALZOOMRATIO 41988 /* Digital zoom ratio */ -#define EXIFTAG_FOCALLENGTHIN35MMFILM 41989 /* Focal length in 35 mm film */ -#define EXIFTAG_SCENECAPTURETYPE 41990 /* Scene capture type */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_CONTRAST 41992 /* Contrast */ -#define EXIFTAG_SATURATION 41993 /* Saturation */ -#define EXIFTAG_SHARPNESS 41994 /* Sharpness */ -#define EXIFTAG_DEVICESETTINGDESCRIPTION 41995 /* Device settings description */ -#define EXIFTAG_SUBJECTDISTANCERANGE 41996 /* Subject distance range */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_GAINCONTROL 41991 /* Gain control */ -#define EXIFTAG_IMAGEUNIQUEID 42016 /* Unique image ID */ - -#endif /* _TIFF_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/ios/include/tiff/tiffconf-32.h b/ios/include/tiff/tiffconf-32.h deleted file mode 100644 index 262db339..00000000 --- a/ios/include/tiff/tiffconf-32.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed int - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_MSB2LSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/ios/include/tiff/tiffconf-64.h b/ios/include/tiff/tiffconf-64.h deleted file mode 100644 index 8bc2a0d7..00000000 --- a/ios/include/tiff/tiffconf-64.h +++ /dev/null @@ -1,128 +0,0 @@ -/* libtiff/tiffconf.h. Generated from tiffconf.h.in by configure. */ -/* - Configuration defines for installed libtiff. - This file maintained for backward compatibility. Do not use definitions - from this file in your programs. -*/ - -#ifndef _TIFFCONF_ -#define _TIFFCONF_ - -/* Signed 16-bit type */ -#define TIFF_INT16_T signed short - -/* Signed 32-bit type */ -#define TIFF_INT32_T signed int - -/* Signed 64-bit type */ -#define TIFF_INT64_T signed long - -/* Signed 8-bit type */ -#define TIFF_INT8_T signed char - -/* Unsigned 16-bit type */ -#define TIFF_UINT16_T unsigned short - -/* Unsigned 32-bit type */ -#define TIFF_UINT32_T unsigned int - -/* Unsigned 64-bit type */ -#define TIFF_UINT64_T unsigned long - -/* Unsigned 8-bit type */ -#define TIFF_UINT8_T unsigned char - -/* Signed size type */ -#define TIFF_SSIZE_T signed long - -/* Pointer difference type */ -#define TIFF_PTRDIFF_T ptrdiff_t - -/* Define to 1 if the system has the type `int16'. */ -/* #undef HAVE_INT16 */ - -/* Define to 1 if the system has the type `int32'. */ -/* #undef HAVE_INT32 */ - -/* Define to 1 if the system has the type `int8'. */ -/* #undef HAVE_INT8 */ - -/* Compatibility stuff. */ - -/* Define as 0 or 1 according to the floating point format suported by the - machine */ -#define HAVE_IEEEFP 1 - -/* Set the native cpu bit order (FILLORDER_LSB2MSB or FILLORDER_MSB2LSB) */ -#define HOST_FILLORDER FILLORDER_LSB2MSB - -/* Native cpu byte order: 1 if big-endian (Motorola) or 0 if little-endian - (Intel) */ -#define HOST_BIGENDIAN 0 - -/* Support CCITT Group 3 & 4 algorithms */ -#define CCITT_SUPPORT 1 - -/* Support JPEG compression (requires IJG JPEG library) */ -/* #undef JPEG_SUPPORT */ - -/* Support JBIG compression (requires JBIG-KIT library) */ -/* #undef JBIG_SUPPORT */ - -/* Support LogLuv high dynamic range encoding */ -#define LOGLUV_SUPPORT 1 - -/* Support LZW algorithm */ -#define LZW_SUPPORT 1 - -/* Support NeXT 2-bit RLE algorithm */ -#define NEXT_SUPPORT 1 - -/* Support Old JPEG compresson (read contrib/ojpeg/README first! Compilation - fails with unpatched IJG JPEG library) */ -/* #undef OJPEG_SUPPORT */ - -/* Support Macintosh PackBits algorithm */ -#define PACKBITS_SUPPORT 1 - -/* Support Pixar log-format algorithm (requires Zlib) */ -/* #undef PIXARLOG_SUPPORT */ - -/* Support ThunderScan 4-bit RLE algorithm */ -#define THUNDER_SUPPORT 1 - -/* Support Deflate compression */ -/* #undef ZIP_SUPPORT */ - -/* Support strip chopping (whether or not to convert single-strip uncompressed - images to mutiple strips of ~8Kb to reduce memory usage) */ -#define STRIPCHOP_DEFAULT TIFF_STRIPCHOP - -/* Enable SubIFD tag (330) support */ -#define SUBIFD_SUPPORT 1 - -/* Treat extra sample as alpha (default enabled). The RGBA interface will - treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA. Many - packages produce RGBA files but don't mark the alpha properly. */ -#define DEFAULT_EXTRASAMPLE_AS_ALPHA 1 - -/* Pick up YCbCr subsampling info from the JPEG data stream to support files - lacking the tag (default enabled). */ -#define CHECK_JPEG_YCBCR_SUBSAMPLING 1 - -/* Support MS MDI magic number files as TIFF */ -#define MDI_SUPPORT 1 - -/* - * Feature support definitions. - * XXX: These macros are obsoleted. Don't use them in your apps! - * Macros stays here for backward compatibility and should be always defined. - */ -#define COLORIMETRY_SUPPORT -#define YCBCR_SUPPORT -#define CMYK_SUPPORT -#define ICC_SUPPORT -#define PHOTOSHOP_SUPPORT -#define IPTC_SUPPORT - -#endif /* _TIFFCONF_ */ diff --git a/ios/include/tiff/tiffconf.h b/ios/include/tiff/tiffconf.h deleted file mode 100644 index 2aae5dea..00000000 --- a/ios/include/tiff/tiffconf.h +++ /dev/null @@ -1,5 +0,0 @@ -#if defined(__LP64__) && __LP64__ -#include"tiffconf-64.h" -#else -#include"tiffconf-32.h" -#endif \ No newline at end of file diff --git a/ios/include/tiff/tiffio.h b/ios/include/tiff/tiffio.h deleted file mode 100644 index 038b6701..00000000 --- a/ios/include/tiff/tiffio.h +++ /dev/null @@ -1,557 +0,0 @@ -/* $Id: tiffio.h,v 1.91 2012-07-29 15:45:29 tgl Exp $ */ - -/* - * Copyright (c) 1988-1997 Sam Leffler - * Copyright (c) 1991-1997 Silicon Graphics, Inc. - * - * Permission to use, copy, modify, distribute, and sell this software and - * its documentation for any purpose is hereby granted without fee, provided - * that (i) the above copyright notices and this permission notice appear in - * all copies of the software and related documentation, and (ii) the names of - * Sam Leffler and Silicon Graphics may not be used in any advertising or - * publicity relating to the software without the specific, prior written - * permission of Sam Leffler and Silicon Graphics. - * - * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, - * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY - * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. - * - * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR - * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, - * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, - * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF - * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THIS SOFTWARE. - */ - -#ifndef _TIFFIO_ -#define _TIFFIO_ - -/* - * TIFF I/O Library Definitions. - */ -#include "tiff.h" -#include "tiffvers.h" - -/* - * TIFF is defined as an incomplete type to hide the - * library's internal data structures from clients. - */ -typedef struct tiff TIFF; - -/* - * The following typedefs define the intrinsic size of - * data types used in the *exported* interfaces. These - * definitions depend on the proper definition of types - * in tiff.h. Note also that the varargs interface used - * to pass tag types and values uses the types defined in - * tiff.h directly. - * - * NB: ttag_t is unsigned int and not unsigned short because - * ANSI C requires that the type before the ellipsis be a - * promoted type (i.e. one of int, unsigned int, pointer, - * or double) and because we defined pseudo-tags that are - * outside the range of legal Aldus-assigned tags. - * NB: tsize_t is int32 and not uint32 because some functions - * return -1. - * NB: toff_t is not off_t for many reasons; TIFFs max out at - * 32-bit file offsets, and BigTIFF maxes out at 64-bit - * offsets being the most important, and to ensure use of - * a consistently unsigned type across architectures. - * Prior to libtiff 4.0, this was an unsigned 32 bit type. - */ -/* - * this is the machine addressing size type, only it's signed, so make it - * int32 on 32bit machines, int64 on 64bit machines - */ -typedef TIFF_SSIZE_T tmsize_t; -typedef uint64 toff_t; /* file offset */ -/* the following are deprecated and should be replaced by their defining - counterparts */ -typedef uint32 ttag_t; /* directory tag */ -typedef uint16 tdir_t; /* directory index */ -typedef uint16 tsample_t; /* sample number */ -typedef uint32 tstrile_t; /* strip or tile number */ -typedef tstrile_t tstrip_t; /* strip number */ -typedef tstrile_t ttile_t; /* tile number */ -typedef tmsize_t tsize_t; /* i/o size in bytes */ -typedef void* tdata_t; /* image data ref */ - -#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32)) -#define __WIN32__ -#endif - -/* - * On windows you should define USE_WIN32_FILEIO if you are using tif_win32.c - * or AVOID_WIN32_FILEIO if you are using something else (like tif_unix.c). - * - * By default tif_unix.c is assumed. - */ - -#if defined(_WINDOWS) || defined(__WIN32__) || defined(_Windows) -# if !defined(__CYGWIN) && !defined(AVOID_WIN32_FILEIO) && !defined(USE_WIN32_FILEIO) -# define AVOID_WIN32_FILEIO -# endif -#endif - -#if defined(USE_WIN32_FILEIO) -# define VC_EXTRALEAN -# include -# ifdef __WIN32__ -DECLARE_HANDLE(thandle_t); /* Win32 file handle */ -# else -typedef HFILE thandle_t; /* client data handle */ -# endif /* __WIN32__ */ -#else -typedef void* thandle_t; /* client data handle */ -#endif /* USE_WIN32_FILEIO */ - -/* - * Flags to pass to TIFFPrintDirectory to control - * printing of data structures that are potentially - * very large. Bit-or these flags to enable printing - * multiple items. - */ -#define TIFFPRINT_NONE 0x0 /* no extra info */ -#define TIFFPRINT_STRIPS 0x1 /* strips/tiles info */ -#define TIFFPRINT_CURVES 0x2 /* color/gray response curves */ -#define TIFFPRINT_COLORMAP 0x4 /* colormap */ -#define TIFFPRINT_JPEGQTABLES 0x100 /* JPEG Q matrices */ -#define TIFFPRINT_JPEGACTABLES 0x200 /* JPEG AC tables */ -#define TIFFPRINT_JPEGDCTABLES 0x200 /* JPEG DC tables */ - -/* - * Colour conversion stuff - */ - -/* reference white */ -#define D65_X0 (95.0470F) -#define D65_Y0 (100.0F) -#define D65_Z0 (108.8827F) - -#define D50_X0 (96.4250F) -#define D50_Y0 (100.0F) -#define D50_Z0 (82.4680F) - -/* Structure for holding information about a display device. */ - -typedef unsigned char TIFFRGBValue; /* 8-bit samples */ - -typedef struct { - float d_mat[3][3]; /* XYZ -> luminance matrix */ - float d_YCR; /* Light o/p for reference white */ - float d_YCG; - float d_YCB; - uint32 d_Vrwr; /* Pixel values for ref. white */ - uint32 d_Vrwg; - uint32 d_Vrwb; - float d_Y0R; /* Residual light for black pixel */ - float d_Y0G; - float d_Y0B; - float d_gammaR; /* Gamma values for the three guns */ - float d_gammaG; - float d_gammaB; -} TIFFDisplay; - -typedef struct { /* YCbCr->RGB support */ - TIFFRGBValue* clamptab; /* range clamping table */ - int* Cr_r_tab; - int* Cb_b_tab; - int32* Cr_g_tab; - int32* Cb_g_tab; - int32* Y_tab; -} TIFFYCbCrToRGB; - -typedef struct { /* CIE Lab 1976->RGB support */ - int range; /* Size of conversion table */ -#define CIELABTORGB_TABLE_RANGE 1500 - float rstep, gstep, bstep; - float X0, Y0, Z0; /* Reference white point */ - TIFFDisplay display; - float Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */ - float Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */ - float Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */ -} TIFFCIELabToRGB; - -/* - * RGBA-style image support. - */ -typedef struct _TIFFRGBAImage TIFFRGBAImage; -/* - * The image reading and conversion routines invoke - * ``put routines'' to copy/image/whatever tiles of - * raw image data. A default set of routines are - * provided to convert/copy raw image data to 8-bit - * packed ABGR format rasters. Applications can supply - * alternate routines that unpack the data into a - * different format or, for example, unpack the data - * and draw the unpacked raster on the display. - */ -typedef void (*tileContigRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*); -typedef void (*tileSeparateRoutine) - (TIFFRGBAImage*, uint32*, uint32, uint32, uint32, uint32, int32, int32, - unsigned char*, unsigned char*, unsigned char*, unsigned char*); -/* - * RGBA-reader state. - */ -struct _TIFFRGBAImage { - TIFF* tif; /* image handle */ - int stoponerr; /* stop on read error */ - int isContig; /* data is packed/separate */ - int alpha; /* type of alpha data present */ - uint32 width; /* image width */ - uint32 height; /* image height */ - uint16 bitspersample; /* image bits/sample */ - uint16 samplesperpixel; /* image samples/pixel */ - uint16 orientation; /* image orientation */ - uint16 req_orientation; /* requested orientation */ - uint16 photometric; /* image photometric interp */ - uint16* redcmap; /* colormap pallete */ - uint16* greencmap; - uint16* bluecmap; - /* get image data routine */ - int (*get)(TIFFRGBAImage*, uint32*, uint32, uint32); - /* put decoded strip/tile */ - union { - void (*any)(TIFFRGBAImage*); - tileContigRoutine contig; - tileSeparateRoutine separate; - } put; - TIFFRGBValue* Map; /* sample mapping array */ - uint32** BWmap; /* black&white map */ - uint32** PALmap; /* palette image map */ - TIFFYCbCrToRGB* ycbcr; /* YCbCr conversion state */ - TIFFCIELabToRGB* cielab; /* CIE L*a*b conversion state */ - - uint8* UaToAa; /* Unassociated alpha to associated alpha convertion LUT */ - uint8* Bitdepth16To8; /* LUT for conversion from 16bit to 8bit values */ - - int row_offset; - int col_offset; -}; - -/* - * Macros for extracting components from the - * packed ABGR form returned by TIFFReadRGBAImage. - */ -#define TIFFGetR(abgr) ((abgr) & 0xff) -#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff) -#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff) -#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff) - -/* - * A CODEC is a software package that implements decoding, - * encoding, or decoding+encoding of a compression algorithm. - * The library provides a collection of builtin codecs. - * More codecs may be registered through calls to the library - * and/or the builtin implementations may be overridden. - */ -typedef int (*TIFFInitMethod)(TIFF*, int); -typedef struct { - char* name; - uint16 scheme; - TIFFInitMethod init; -} TIFFCodec; - -#include -#include - -/* share internal LogLuv conversion routines? */ -#ifndef LOGLUV_PUBLIC -#define LOGLUV_PUBLIC 1 -#endif - -#if !defined(__GNUC__) && !defined(__attribute__) -# define __attribute__(x) /*nothing*/ -#endif - -#if defined(c_plusplus) || defined(__cplusplus) -extern "C" { -#endif -typedef void (*TIFFErrorHandler)(const char*, const char*, va_list); -typedef void (*TIFFErrorHandlerExt)(thandle_t, const char*, const char*, va_list); -typedef tmsize_t (*TIFFReadWriteProc)(thandle_t, void*, tmsize_t); -typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int); -typedef int (*TIFFCloseProc)(thandle_t); -typedef toff_t (*TIFFSizeProc)(thandle_t); -typedef int (*TIFFMapFileProc)(thandle_t, void** base, toff_t* size); -typedef void (*TIFFUnmapFileProc)(thandle_t, void* base, toff_t size); -typedef void (*TIFFExtendProc)(TIFF*); - -extern const char* TIFFGetVersion(void); - -extern const TIFFCodec* TIFFFindCODEC(uint16); -extern TIFFCodec* TIFFRegisterCODEC(uint16, const char*, TIFFInitMethod); -extern void TIFFUnRegisterCODEC(TIFFCodec*); -extern int TIFFIsCODECConfigured(uint16); -extern TIFFCodec* TIFFGetConfiguredCODECs(void); - -/* - * Auxiliary functions. - */ - -extern void* _TIFFmalloc(tmsize_t s); -extern void* _TIFFrealloc(void* p, tmsize_t s); -extern void _TIFFmemset(void* p, int v, tmsize_t c); -extern void _TIFFmemcpy(void* d, const void* s, tmsize_t c); -extern int _TIFFmemcmp(const void* p1, const void* p2, tmsize_t c); -extern void _TIFFfree(void* p); - -/* -** Stuff, related to tag handling and creating custom tags. -*/ -extern int TIFFGetTagListCount( TIFF * ); -extern uint32 TIFFGetTagListEntry( TIFF *, int tag_index ); - -#define TIFF_ANY TIFF_NOTYPE /* for field descriptor searching */ -#define TIFF_VARIABLE -1 /* marker for variable length tags */ -#define TIFF_SPP -2 /* marker for SamplesPerPixel tags */ -#define TIFF_VARIABLE2 -3 /* marker for uint32 var-length tags */ - -#define FIELD_CUSTOM 65 - -typedef struct _TIFFField TIFFField; -typedef struct _TIFFFieldArray TIFFFieldArray; - -extern const TIFFField* TIFFFindField(TIFF *, uint32, TIFFDataType); -extern const TIFFField* TIFFFieldWithTag(TIFF*, uint32); -extern const TIFFField* TIFFFieldWithName(TIFF*, const char *); - -extern uint32 TIFFFieldTag(const TIFFField*); -extern const char* TIFFFieldName(const TIFFField*); -extern TIFFDataType TIFFFieldDataType(const TIFFField*); -extern int TIFFFieldPassCount(const TIFFField*); -extern int TIFFFieldReadCount(const TIFFField*); -extern int TIFFFieldWriteCount(const TIFFField*); - -typedef int (*TIFFVSetMethod)(TIFF*, uint32, va_list); -typedef int (*TIFFVGetMethod)(TIFF*, uint32, va_list); -typedef void (*TIFFPrintMethod)(TIFF*, FILE*, long); - -typedef struct { - TIFFVSetMethod vsetfield; /* tag set routine */ - TIFFVGetMethod vgetfield; /* tag get routine */ - TIFFPrintMethod printdir; /* directory print routine */ -} TIFFTagMethods; - -extern TIFFTagMethods *TIFFAccessTagMethods(TIFF *); -extern void *TIFFGetClientInfo(TIFF *, const char *); -extern void TIFFSetClientInfo(TIFF *, void *, const char *); - -extern void TIFFCleanup(TIFF* tif); -extern void TIFFClose(TIFF* tif); -extern int TIFFFlush(TIFF* tif); -extern int TIFFFlushData(TIFF* tif); -extern int TIFFGetField(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetField(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFGetFieldDefaulted(TIFF* tif, uint32 tag, ...); -extern int TIFFVGetFieldDefaulted(TIFF* tif, uint32 tag, va_list ap); -extern int TIFFReadDirectory(TIFF* tif); -extern int TIFFReadCustomDirectory(TIFF* tif, toff_t diroff, const TIFFFieldArray* infoarray); -extern int TIFFReadEXIFDirectory(TIFF* tif, toff_t diroff); -extern uint64 TIFFScanlineSize64(TIFF* tif); -extern tmsize_t TIFFScanlineSize(TIFF* tif); -extern uint64 TIFFRasterScanlineSize64(TIFF* tif); -extern tmsize_t TIFFRasterScanlineSize(TIFF* tif); -extern uint64 TIFFStripSize64(TIFF* tif); -extern tmsize_t TIFFStripSize(TIFF* tif); -extern uint64 TIFFRawStripSize64(TIFF* tif, uint32 strip); -extern tmsize_t TIFFRawStripSize(TIFF* tif, uint32 strip); -extern uint64 TIFFVStripSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVStripSize(TIFF* tif, uint32 nrows); -extern uint64 TIFFTileRowSize64(TIFF* tif); -extern tmsize_t TIFFTileRowSize(TIFF* tif); -extern uint64 TIFFTileSize64(TIFF* tif); -extern tmsize_t TIFFTileSize(TIFF* tif); -extern uint64 TIFFVTileSize64(TIFF* tif, uint32 nrows); -extern tmsize_t TIFFVTileSize(TIFF* tif, uint32 nrows); -extern uint32 TIFFDefaultStripSize(TIFF* tif, uint32 request); -extern void TIFFDefaultTileSize(TIFF*, uint32*, uint32*); -extern int TIFFFileno(TIFF*); -extern int TIFFSetFileno(TIFF*, int); -extern thandle_t TIFFClientdata(TIFF*); -extern thandle_t TIFFSetClientdata(TIFF*, thandle_t); -extern int TIFFGetMode(TIFF*); -extern int TIFFSetMode(TIFF*, int); -extern int TIFFIsTiled(TIFF*); -extern int TIFFIsByteSwapped(TIFF*); -extern int TIFFIsUpSampled(TIFF*); -extern int TIFFIsMSB2LSB(TIFF*); -extern int TIFFIsBigEndian(TIFF*); -extern TIFFReadWriteProc TIFFGetReadProc(TIFF*); -extern TIFFReadWriteProc TIFFGetWriteProc(TIFF*); -extern TIFFSeekProc TIFFGetSeekProc(TIFF*); -extern TIFFCloseProc TIFFGetCloseProc(TIFF*); -extern TIFFSizeProc TIFFGetSizeProc(TIFF*); -extern TIFFMapFileProc TIFFGetMapFileProc(TIFF*); -extern TIFFUnmapFileProc TIFFGetUnmapFileProc(TIFF*); -extern uint32 TIFFCurrentRow(TIFF*); -extern uint16 TIFFCurrentDirectory(TIFF*); -extern uint16 TIFFNumberOfDirectories(TIFF*); -extern uint64 TIFFCurrentDirOffset(TIFF*); -extern uint32 TIFFCurrentStrip(TIFF*); -extern uint32 TIFFCurrentTile(TIFF* tif); -extern int TIFFReadBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFWriteBufferSetup(TIFF* tif, void* bp, tmsize_t size); -extern int TIFFSetupStrips(TIFF *); -extern int TIFFWriteCheck(TIFF*, int, const char *); -extern void TIFFFreeDirectory(TIFF*); -extern int TIFFCreateDirectory(TIFF*); -extern int TIFFCreateCustomDirectory(TIFF*,const TIFFFieldArray*); -extern int TIFFCreateEXIFDirectory(TIFF*); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, uint16); -extern int TIFFSetSubDirectory(TIFF*, uint64); -extern int TIFFUnlinkDirectory(TIFF*, uint16); -extern int TIFFSetField(TIFF*, uint32, ...); -extern int TIFFVSetField(TIFF*, uint32, va_list); -extern int TIFFUnsetField(TIFF*, uint32); -extern int TIFFWriteDirectory(TIFF *); -extern int TIFFWriteCustomDirectory(TIFF *, uint64 *); -extern int TIFFCheckpointDirectory(TIFF *); -extern int TIFFRewriteDirectory(TIFF *); - -#if defined(c_plusplus) || defined(__cplusplus) -extern void TIFFPrintDirectory(TIFF*, FILE*, long = 0); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample = 0); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int = 0); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, - int = ORIENTATION_BOTLEFT, int = 0); -#else -extern void TIFFPrintDirectory(TIFF*, FILE*, long); -extern int TIFFReadScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFWriteScanline(TIFF* tif, void* buf, uint32 row, uint16 sample); -extern int TIFFReadRGBAImage(TIFF*, uint32, uint32, uint32*, int); -extern int TIFFReadRGBAImageOriented(TIFF*, uint32, uint32, uint32*, int, int); -#endif - -extern int TIFFReadRGBAStrip(TIFF*, uint32, uint32 * ); -extern int TIFFReadRGBATile(TIFF*, uint32, uint32, uint32 * ); -extern int TIFFRGBAImageOK(TIFF*, char [1024]); -extern int TIFFRGBAImageBegin(TIFFRGBAImage*, TIFF*, int, char [1024]); -extern int TIFFRGBAImageGet(TIFFRGBAImage*, uint32*, uint32, uint32); -extern void TIFFRGBAImageEnd(TIFFRGBAImage*); -extern TIFF* TIFFOpen(const char*, const char*); -# ifdef __WIN32__ -extern TIFF* TIFFOpenW(const wchar_t*, const char*); -# endif /* __WIN32__ */ -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char*, const char*, - thandle_t, - TIFFReadWriteProc, TIFFReadWriteProc, - TIFFSeekProc, TIFFCloseProc, - TIFFSizeProc, - TIFFMapFileProc, TIFFUnmapFileProc); -extern const char* TIFFFileName(TIFF*); -extern const char* TIFFSetFileName(TIFF*, const char *); -extern void TIFFError(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFErrorExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern void TIFFWarning(const char*, const char*, ...) __attribute__((__format__ (__printf__,2,3))); -extern void TIFFWarningExt(thandle_t, const char*, const char*, ...) __attribute__((__format__ (__printf__,3,4))); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetErrorHandlerExt(TIFFErrorHandlerExt); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler); -extern TIFFErrorHandlerExt TIFFSetWarningHandlerExt(TIFFErrorHandlerExt); -extern TIFFExtendProc TIFFSetTagExtender(TIFFExtendProc); -extern uint32 TIFFComputeTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern int TIFFCheckTile(TIFF* tif, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFNumberOfTiles(TIFF*); -extern tmsize_t TIFFReadTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern tmsize_t TIFFWriteTile(TIFF* tif, void* buf, uint32 x, uint32 y, uint32 z, uint16 s); -extern uint32 TIFFComputeStrip(TIFF*, uint32, uint16); -extern uint32 TIFFNumberOfStrips(TIFF*); -extern tmsize_t TIFFReadEncodedStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawStrip(TIFF* tif, uint32 strip, void* buf, tmsize_t size); -extern tmsize_t TIFFReadEncodedTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFReadRawTile(TIFF* tif, uint32 tile, void* buf, tmsize_t size); -extern tmsize_t TIFFWriteEncodedStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawStrip(TIFF* tif, uint32 strip, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteEncodedTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern tmsize_t TIFFWriteRawTile(TIFF* tif, uint32 tile, void* data, tmsize_t cc); -extern int TIFFDataWidth(TIFFDataType); /* table of tag datatype widths */ -extern void TIFFSetWriteOffset(TIFF* tif, toff_t off); -extern void TIFFSwabShort(uint16*); -extern void TIFFSwabLong(uint32*); -extern void TIFFSwabLong8(uint64*); -extern void TIFFSwabFloat(float*); -extern void TIFFSwabDouble(double*); -extern void TIFFSwabArrayOfShort(uint16* wp, tmsize_t n); -extern void TIFFSwabArrayOfTriples(uint8* tp, tmsize_t n); -extern void TIFFSwabArrayOfLong(uint32* lp, tmsize_t n); -extern void TIFFSwabArrayOfLong8(uint64* lp, tmsize_t n); -extern void TIFFSwabArrayOfFloat(float* fp, tmsize_t n); -extern void TIFFSwabArrayOfDouble(double* dp, tmsize_t n); -extern void TIFFReverseBits(uint8* cp, tmsize_t n); -extern const unsigned char* TIFFGetBitRevTable(int); - -#ifdef LOGLUV_PUBLIC -#define U_NEU 0.210526316 -#define V_NEU 0.473684211 -#define UVSCALE 410. -extern double LogL16toY(int); -extern double LogL10toY(int); -extern void XYZtoRGB24(float*, uint8*); -extern int uv_decode(double*, double*, int); -extern void LogLuv24toXYZ(uint32, float*); -extern void LogLuv32toXYZ(uint32, float*); -#if defined(c_plusplus) || defined(__cplusplus) -extern int LogL16fromY(double, int = SGILOGENCODE_NODITHER); -extern int LogL10fromY(double, int = SGILOGENCODE_NODITHER); -extern int uv_encode(double, double, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv24fromXYZ(float*, int = SGILOGENCODE_NODITHER); -extern uint32 LogLuv32fromXYZ(float*, int = SGILOGENCODE_NODITHER); -#else -extern int LogL16fromY(double, int); -extern int LogL10fromY(double, int); -extern int uv_encode(double, double, int); -extern uint32 LogLuv24fromXYZ(float*, int); -extern uint32 LogLuv32fromXYZ(float*, int); -#endif -#endif /* LOGLUV_PUBLIC */ - -extern int TIFFCIELabToRGBInit(TIFFCIELabToRGB*, const TIFFDisplay *, float*); -extern void TIFFCIELabToXYZ(TIFFCIELabToRGB *, uint32, int32, int32, - float *, float *, float *); -extern void TIFFXYZToRGB(TIFFCIELabToRGB *, float, float, float, - uint32 *, uint32 *, uint32 *); - -extern int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB*, float*, float*); -extern void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *, uint32, int32, int32, - uint32 *, uint32 *, uint32 *); - -/**************************************************************************** - * O B S O L E T E D I N T E R F A C E S - * - * Don't use this stuff in your applications, it may be removed in the future - * libtiff versions. - ****************************************************************************/ -typedef struct { - ttag_t field_tag; /* field's tag */ - short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */ - short field_writecount; /* write count/TIFF_VARIABLE */ - TIFFDataType field_type; /* type of associated data */ - unsigned short field_bit; /* bit in fieldsset bit vector */ - unsigned char field_oktochange; /* if true, can change while writing */ - unsigned char field_passcount; /* if true, pass dir count on set */ - char *field_name; /* ASCII name */ -} TIFFFieldInfo; - -extern int TIFFMergeFieldInfo(TIFF*, const TIFFFieldInfo[], uint32); - -#if defined(c_plusplus) || defined(__cplusplus) -} -#endif - -#endif /* _TIFFIO_ */ - -/* vim: set ts=8 sts=8 sw=8 noet: */ -/* - * Local Variables: - * mode: c - * c-basic-offset: 8 - * fill-column: 78 - * End: - */ diff --git a/ios/include/tiff/tiffvers.h b/ios/include/tiff/tiffvers.h deleted file mode 100644 index 40edc813..00000000 --- a/ios/include/tiff/tiffvers.h +++ /dev/null @@ -1,9 +0,0 @@ -#define TIFFLIB_VERSION_STR "LIBTIFF, Version 4.0.3\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc." -/* - * This define can be used in code that requires - * compilation-related definitions specific to a - * version or versions of the library. Runtime - * version checking should be done based on the - * string returned by TIFFGetVersion. - */ -#define TIFFLIB_VERSION 20120922 diff --git a/ios/libs/libtiff.a b/ios/libs/libtiff.a deleted file mode 100644 index aca6aa2181f310c900d54548640b0531264c9d51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795304 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Ż|f2vR8 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 dEb?^@K26f~X{B`H2PiEdR1GqB;`z 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

    5;5GD`}|=PyRVqV)2LF}gv^TryW1 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%0AD_NpD?fU12VeXj`mRNS?giSc^ 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