summaryrefslogtreecommitdiffstats
path: root/external/pdfium
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 05:54:39 +0000
commit267c6f2ac71f92999e969232431ba04678e7437e (patch)
tree358c9467650e1d0a1d7227a21dac2e3d08b622b2 /external/pdfium
parentInitial commit. (diff)
downloadlibreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz
libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'external/pdfium')
-rw-r--r--external/pdfium/Library_pdfium.mk722
-rw-r--r--external/pdfium/Makefile7
-rw-r--r--external/pdfium/Module_pdfium.mk17
-rw-r--r--external/pdfium/README17
-rw-r--r--external/pdfium/UnpackedTarball_pdfium.mk42
-rw-r--r--external/pdfium/build.patch.1132
-rw-r--r--external/pdfium/c++20-comparison.patch13
-rw-r--r--external/pdfium/constexpr-template.patch12
-rw-r--r--external/pdfium/inc/pch/precompiled_pdfium.cxx12
-rw-r--r--external/pdfium/inc/pch/precompiled_pdfium.hxx490
-rw-r--r--external/pdfium/windows7.patch.134
11 files changed, 1498 insertions, 0 deletions
diff --git a/external/pdfium/Library_pdfium.mk b/external/pdfium/Library_pdfium.mk
new file mode 100644
index 0000000000..fc0903d873
--- /dev/null
+++ b/external/pdfium/Library_pdfium.mk
@@ -0,0 +1,722 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Library_Library,pdfium))
+
+$(eval $(call gb_Library_use_unpacked,pdfium,pdfium))
+
+$(eval $(call gb_Library_set_warnings_disabled,pdfium))
+
+$(eval $(call gb_Library_set_precompiled_header,pdfium,external/pdfium/inc/pch/precompiled_pdfium))
+
+$(eval $(call gb_Library_set_include,pdfium,\
+ -I$(call gb_UnpackedTarball_get_dir,pdfium) \
+ -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party \
+ -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/agg23 \
+ $(if $(filter TRUE,$(SYSTEM_ABSEIL)),$(ABSEIL_CFLAGS),-I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/abseil-cpp) \
+ $(if $(filter TRUE,$(SYSTEM_OPENJPEG2)),$(OPENJPEG2_CFLAGS)) \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Library_add_defs,pdfium,\
+ -DFPDF_IMPLEMENTATION \
+ -DUSE_SYSTEM_LCMS2 \
+ -DUSE_SYSTEM_LIBJPEG \
+ -DUSE_SYSTEM_ZLIB \
+ -DUSE_SYSTEM_ICUUC \
+ -DMEMORY_TOOL_REPLACES_ALLOCATOR \
+ -DUNICODE \
+ -DWIN32_LEAN_AND_MEAN \
+ -DCOMPONENT_BUILD \
+))
+ifeq ($(SYSTEM_OPENJPEG2),TRUE)
+$(eval $(call gb_Library_add_defs,pdfium,\
+ -DUSE_SYSTEM_LIBOPENJPEG2 \
+))
+endif
+
+
+$(eval $(call gb_Library_set_generated_cxx_suffix,pdfium,cpp))
+
+# pdfium
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annot \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annotiteration \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_baannot \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_formfillenvironment \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_pageview \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_widget \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_dataavail \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_ext \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_flatten \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_progressive \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_searchex \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_structtree \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_sysfontinfo \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_transformpage \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_annotiterator \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_customaccess \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_filewriteadapter \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_helpers \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_annot \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_attachment \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_catalog \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_doc \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_editimg \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_editpage \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_editpath \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_edittext \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_formfill \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_save \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_text \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_view \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_pauseadapter \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_interactiveform \
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_renderpage \
+ UnpackedTarball/pdfium/fpdfsdk/fpdf_signature \
+ UnpackedTarball/pdfium/constants/annotation_common \
+ UnpackedTarball/pdfium/constants/appearance \
+ UnpackedTarball/pdfium/constants/form_fields \
+ UnpackedTarball/pdfium/constants/page_object \
+ UnpackedTarball/pdfium/constants/stream_dict_common \
+ UnpackedTarball/pdfium/constants/transparency \
+ UnpackedTarball/pdfium/constants/font_encodings \
+))
+
+# fdrm
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fdrm/fx_crypt \
+ UnpackedTarball/pdfium/core/fdrm/fx_crypt_aes \
+ UnpackedTarball/pdfium/core/fdrm/fx_crypt_sha \
+))
+
+# formfiller
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_checkbox \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_combobox \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_formfield \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_interactiveformfiller \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_listbox \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_pushbutton \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_radiobutton \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_textfield \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_button \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_textobject \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_fieldaction \
+ UnpackedTarball/pdfium/fpdfsdk/formfiller/cffl_perwindowdata \
+))
+
+# fpdfapi
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/Adobe-CNS1-UCS2_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/B5pc-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/CNS-EUC-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/ETen-B5-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/ETen-B5-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/ETenms-B5-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/ETenms-B5-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/HKscs-B5-H_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/HKscs-B5-V_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UCS2-H_3 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UCS2-V_3 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/UniCNS-UTF16-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/CNS1/cmaps_cns1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/Adobe-GB1-UCS2_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GB-EUC-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-H_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBK-EUC-V_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-H_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBK2K-V_5 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBKp-EUC-H_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBKp-EUC-V_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBpc-EUC-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/GBpc-EUC-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/UniGB-UCS2-H_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/UniGB-UCS2-V_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/GB1/cmaps_gb1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/83pv-RKSJ-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/90ms-RKSJ-H_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/90ms-RKSJ-V_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/90msp-RKSJ-H_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/90msp-RKSJ-V_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/90pv-RKSJ-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/Add-RKSJ-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/Add-RKSJ-V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/Adobe-Japan1-UCS2_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/EUC-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/EUC-V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/Ext-RKSJ-H_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/Ext-RKSJ-V_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-HW-H_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-HW-V_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-H_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/UniJIS-UCS2-V_4 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Japan1/cmaps_japan1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/Adobe-Korea1-UCS2_2 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSC-EUC-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSC-EUC-V_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSCms-UHC-HW-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSCms-UHC-HW-V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSCms-UHC-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSCms-UHC-V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/KSCpc-EUC-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/UniKS-UCS2-H_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/UniKS-UCS2-V_1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/UniKS-UTF16-H_0 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/Korea1/cmaps_korea1 \
+ UnpackedTarball/pdfium/core/fpdfapi/cmaps/fpdf_cmaps \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_pagecontentgenerator \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_cidfont \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_font \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_fontencoding \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_simplefont \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_truetypefont \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_type1font \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_type3char \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_type3font \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_allstates \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_clippath \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_color \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_colorspace \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_colorstate \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_contentmarks \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_contentmarkitem \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_contentparser \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_docpagedata \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_form \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_formobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_generalstate \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_graphicstates \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_image \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_imageobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_meshstream \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_page \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pagemodule \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pageobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pageobjectholder \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_path \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pathobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pattern \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_shadingobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_shadingpattern \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_streamcontentparser \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_streamparser \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_textobject \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_textstate \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_tilingpattern \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cfdf_document \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_array \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_boolean \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_crypto_handler \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_data_avail \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_dictionary \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_document \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_hint_tables \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_indirect_object_holder \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_linearized_header \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_name \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_null \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_number \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_object \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_parser \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_reference \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_security_handler \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_simple_parser \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_stream \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_stream_acc \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_string \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_syntax_parser \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/fpdf_parser_decode \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/fpdf_parser_utility \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_object_walker \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_read_validator \
+ UnpackedTarball/pdfium/core/fpdfapi/render/charposlist \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_devicebuffer \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_docrenderdata \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_imageloader \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_imagerenderer \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_pageimagecache \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_progressiverenderer \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_rendercontext \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_renderoptions \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_renderstatus \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_scaledrenderbuffer \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_textrenderer \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_type3cache \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_type3glyphmap \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_rendershading \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_rendertiling \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_creator \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_encryptor \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_flateencoder \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cfx_cttgsubtable \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cfx_stockfontarray \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_cid2unicodemap \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_cmap \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_cmapparser \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_fontglobals \
+ UnpackedTarball/pdfium/core/fpdfapi/font/cpdf_tounicodemap \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_devicecs \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_expintfunc \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_function \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_iccprofile \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_patterncs \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_psengine \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_psfunc \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_sampledfunc \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_stitchfunc \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_object_avail \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_page_object_avail \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_cross_ref_avail \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_pagecontentmanager \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_transparency \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_dib \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_object_stream \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/cpdf_cross_ref_table \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_stringarchivestream \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_occontext \
+ UnpackedTarball/pdfium/core/fpdfapi/edit/cpdf_contentstream_write_utils \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_annotcontext \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_pagerendercontext \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_transferfuncdib \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_transferfunc \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_basedcs \
+ UnpackedTarball/pdfium/core/fpdfapi/page/cpdf_indexedcs \
+ UnpackedTarball/pdfium/core/fpdfapi/parser/object_tree_traversal_util \
+))
+
+# fpdfdoc
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_aaction \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_action \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_annot \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_annotlist \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_apsettings \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_bookmark \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_bookmarktree \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_defaultappearance \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_dest \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_filespec \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_formcontrol \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_formfield \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_iconfit \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_interactiveform \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_link \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_linklist \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_metadata \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_nametree \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_numbertree \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_pagelabel \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_viewerpreferences \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpvt_fontmap \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpvt_wordinfo \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_structelement \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_structtree \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_color_utils \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_icon \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_bafontmap \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpdf_generateap \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpvt_section \
+ UnpackedTarball/pdfium/core/fpdfdoc/cpvt_variabletext \
+))
+
+# fpdftext
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fpdftext/cpdf_linkextract \
+ UnpackedTarball/pdfium/core/fpdftext/cpdf_textpage \
+ UnpackedTarball/pdfium/core/fpdftext/cpdf_textpagefind \
+ UnpackedTarball/pdfium/core/fpdftext/unicodenormalizationdata \
+))
+
+# fxcodec
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxcodec/fx_codec \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_ArithDecoder \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_ArithIntDecoder \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_BitStream \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_Context \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_GrdProc \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_GrrdProc \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_HtrdProc \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_HuffmanDecoder \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_HuffmanTable \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_Image \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_PatternDict \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_PddProc \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_SddProc \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_Segment \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_SymbolDict \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_TrdProc \
+ UnpackedTarball/pdfium/core/fxcodec/gif/cfx_gif \
+ UnpackedTarball/pdfium/core/fxcodec/gif/lzw_decompressor \
+ UnpackedTarball/pdfium/core/fxcodec/cfx_codec_memory \
+ UnpackedTarball/pdfium/core/fxcodec/fax/faxmodule \
+ UnpackedTarball/pdfium/core/fxcodec/scanlinedecoder \
+ UnpackedTarball/pdfium/core/fxcodec/jpeg/jpegmodule \
+ UnpackedTarball/pdfium/core/fxcodec/jpx/cjpx_decoder \
+ UnpackedTarball/pdfium/core/fxcodec/jpx/jpx_decode_utils \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/JBig2_DocumentContext \
+ UnpackedTarball/pdfium/core/fxcodec/basic/basicmodule \
+ UnpackedTarball/pdfium/core/fxcodec/flate/flatemodule \
+ UnpackedTarball/pdfium/core/fxcodec/icc/icc_transform \
+ UnpackedTarball/pdfium/core/fxcodec/jbig2/jbig2_decoder \
+ UnpackedTarball/pdfium/core/fxcodec/jpeg/jpeg_common \
+))
+
+# fxcrt
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxcrt/cfx_memorystream \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_seekablestreamproxy \
+ UnpackedTarball/pdfium/core/fxcrt/fx_bidi \
+ UnpackedTarball/pdfium/core/fxcrt/fx_coordinates \
+ UnpackedTarball/pdfium/core/fxcrt/fx_extension \
+ UnpackedTarball/pdfium/core/fxcrt/fx_memory \
+ UnpackedTarball/pdfium/core/fxcrt/fx_stream \
+ UnpackedTarball/pdfium/core/fxcrt/fx_system \
+ UnpackedTarball/pdfium/core/fxcrt/fx_unicode \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmldocument \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlelement \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlparser \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlnode \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlinstruction \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmltext \
+ UnpackedTarball/pdfium/core/fxcrt/xml/cfx_xmlchardata \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscolorvalue \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscomputedstyle \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csscustomproperty \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssdeclaration \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssenumvalue \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssnumbervalue \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csspropertyholder \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssrulecollection \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssselector \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssstringvalue \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssstylerule \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssstyleselector \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssstylesheet \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_csssyntaxparser \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssvalue \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssvaluelist \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssvaluelistparser \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssinputtextbuf \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssoutputtextbuf \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_datetime \
+ UnpackedTarball/pdfium/core/fxcrt/bytestring \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_bitstream \
+ UnpackedTarball/pdfium/core/fxcrt/fx_random \
+ UnpackedTarball/pdfium/core/fxcrt/fx_string \
+ UnpackedTarball/pdfium/core/fxcrt/widestring \
+ UnpackedTarball/pdfium/core/fxcrt/css/cfx_cssdata \
+ UnpackedTarball/pdfium/core/fxcrt/fx_codepage \
+ UnpackedTarball/pdfium/core/fxcrt/fx_number \
+ UnpackedTarball/pdfium/core/fxcrt/observed_ptr \
+ UnpackedTarball/pdfium/core/fxcrt/string_data_template \
+ UnpackedTarball/pdfium/core/fxcrt/binary_buffer \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_read_only_span_stream \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_read_only_string_stream \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_read_only_vector_stream \
+ UnpackedTarball/pdfium/core/fxcrt/fx_memory_malloc \
+ UnpackedTarball/pdfium/core/fxcrt/widetext_buffer \
+))
+
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_bitmapcomposer \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_bitmapstorer \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_dibitmap \
+ UnpackedTarball/pdfium/core/fxge/cfx_drawutils \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_imagerenderer \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_imagestretcher \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_imagetransformer \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_scanlinecompositor \
+ UnpackedTarball/pdfium/core/fxge/dib/cstretchengine \
+ UnpackedTarball/pdfium/core/fxge/dib/fx_dib \
+ UnpackedTarball/pdfium/core/fxge/dib/blend \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitDingbats \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitFixed \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitFixedBold \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitFixedBoldItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitFixedItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSans \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSansBold \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSansBoldItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSansItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSansMM \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerif \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerifBold \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerifBoldItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerifItalic \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSerifMM \
+ UnpackedTarball/pdfium/core/fxge/fontdata/chromefontdata/FoxitSymbol \
+ UnpackedTarball/pdfium/core/fxge/freetype/fx_freetype \
+ UnpackedTarball/pdfium/core/fxge/renderdevicedriver_iface \
+ UnpackedTarball/pdfium/core/fxge/agg/fx_agg_driver \
+ UnpackedTarball/pdfium/core/fxge/cfx_cliprgn \
+ UnpackedTarball/pdfium/core/fxge/cfx_color \
+ UnpackedTarball/pdfium/core/fxge/cfx_glyphcache \
+ UnpackedTarball/pdfium/core/fxge/cfx_folderfontinfo \
+ UnpackedTarball/pdfium/core/fxge/cfx_font \
+ UnpackedTarball/pdfium/core/fxge/cfx_fontcache \
+ UnpackedTarball/pdfium/core/fxge/cfx_fontmapper \
+ UnpackedTarball/pdfium/core/fxge/cfx_fontmgr \
+ UnpackedTarball/pdfium/core/fxge/cfx_gemodule \
+ UnpackedTarball/pdfium/core/fxge/cfx_graphstate \
+ UnpackedTarball/pdfium/core/fxge/cfx_graphstatedata \
+ UnpackedTarball/pdfium/core/fxge/cfx_path \
+ UnpackedTarball/pdfium/core/fxge/cfx_renderdevice \
+ UnpackedTarball/pdfium/core/fxge/cfx_substfont \
+ UnpackedTarball/pdfium/core/fxge/cfx_unicodeencoding \
+ UnpackedTarball/pdfium/core/fxge/cfx_glyphbitmap \
+ UnpackedTarball/pdfium/core/fxge/scoped_font_transform \
+ UnpackedTarball/pdfium/core/fxge/text_glyph_pos \
+ UnpackedTarball/pdfium/core/fxge/fx_font \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_dibbase \
+ UnpackedTarball/pdfium/core/fxge/dib/cfx_cmyk_to_srgb \
+ UnpackedTarball/pdfium/core/fxge/text_char_pos \
+ UnpackedTarball/pdfium/core/fxge/cfx_face \
+ UnpackedTarball/pdfium/core/fxge/cfx_defaultrenderdevice \
+ UnpackedTarball/pdfium/core/fxge/calculate_pitch \
+))
+
+# javascript, build with pdf_enable_v8 disabled.
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/fxjs/cjs_event_context_stub \
+ UnpackedTarball/pdfium/fxjs/cjs_runtimestub \
+ UnpackedTarball/pdfium/fxjs/ijs_runtime \
+))
+
+# pwl
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/fpdfsdk/cpdfsdk_appstream \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_button \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_caret \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_combo_box \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_edit \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_edit_impl \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_sbbutton \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_list_box \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_cbbutton \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_cblistbox \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_list_ctrl \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_scroll_bar \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_special_button \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_timer \
+ UnpackedTarball/pdfium/fpdfsdk/pwl/cpwl_wnd \
+))
+
+# third_party/fx_agg
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/third_party/agg23/agg_curves \
+ UnpackedTarball/pdfium/third_party/agg23/agg_path_storage \
+ UnpackedTarball/pdfium/third_party/agg23/agg_rasterizer_scanline_aa \
+ UnpackedTarball/pdfium/third_party/agg23/agg_vcgen_dash \
+ UnpackedTarball/pdfium/third_party/agg23/agg_vcgen_stroke \
+))
+
+ifneq ($(SYSTEM_ABSEIL),TRUE)
+# third_party/abseil-cpp
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/third_party/abseil-cpp/absl/types/bad_optional_access \
+ UnpackedTarball/pdfium/third_party/abseil-cpp/absl/types/bad_variant_access \
+))
+endif
+
+ifneq ($(SYSTEM_OPENJPEG2),TRUE)
+# third_party/fx_libopenjpeg
+$(eval $(call gb_Library_add_generated_cobjects,pdfium,\
+ UnpackedTarball/pdfium/third_party/libopenjpeg/bio \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/cio \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/dwt \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/event \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/function_list \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/image \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/invert \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/j2k \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/jp2 \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/mct \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/mqc \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/openjpeg \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/opj_clock \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/pi \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/thread \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/t1 \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/t2 \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/tcd \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/tgt \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/sparse_array \
+ UnpackedTarball/pdfium/third_party/libopenjpeg/ht_dec \
+))
+
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/third_party/libopenjpeg/opj_malloc \
+))
+endif
+
+# pdfium_base
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/third_party/base/debug/alias \
+ UnpackedTarball/pdfium/third_party/base/memory/aligned_memory \
+))
+
+$(eval $(call gb_Library_use_externals,pdfium,\
+ libjpeg \
+ lcms2 \
+ zlib \
+ icu_headers \
+ icuuc \
+))
+
+ifneq (,$(filter LINUX ANDROID,$(OS)))
+$(eval $(call gb_Library_add_libs,pdfium,\
+ -ldl \
+ -lrt \
+))
+
+ifeq ($(SYSTEM_OPENJPEG2),TRUE)
+$(eval $(call gb_Library_add_libs,pdfium,\
+ $(OPENJPEG2_LIBS) \
+))
+endif
+
+ifeq ($(SYSTEM_ABSEIL),TRUE)
+$(eval $(call gb_Library_add_libs,pdfium,\
+ $(ABSEIL_LIBS) \
+))
+endif
+
+$(eval $(call gb_Library_use_external,pdfium,freetype))
+$(eval $(call gb_Library_add_defs,pdfium,\
+ -DDEFINE_PS_TABLES_DATA \
+))
+
+else
+$(eval $(call gb_Library_set_include,pdfium,\
+ -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/freetype/include/ \
+ -I$(call gb_UnpackedTarball_get_dir,pdfium)/third_party/freetype/src/include/ \
+ $$(INCLUDE) \
+))
+
+$(eval $(call gb_Library_add_defs,pdfium,\
+ -DFT2_BUILD_LIBRARY \
+ -DFT_CONFIG_MODULES_H='<freetype-custom-config/ftmodule.h>' \
+ -DFT_CONFIG_OPTIONS_H='<freetype-custom-config/ftoption.h>' \
+))
+
+# third_party/freetype
+$(eval $(call gb_Library_add_generated_cobjects,pdfium,\
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftbase \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftbitmap \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftglyph \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftinit \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftmm \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftsystem \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/cff/cff \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/cid/type1cid \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/psaux/psaux \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/pshinter/pshinter \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/psnames/psmodule \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/raster/raster \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/sfnt/sfnt \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/smooth/smooth \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/truetype/truetype \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/type1/type1 \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftdebug \
+ UnpackedTarball/pdfium/third_party/freetype/src/src/base/ftfstype \
+))
+endif
+
+ifneq ($(OS),WNT)
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_posix \
+ UnpackedTarball/pdfium/core/fxcrt/fx_folder_posix \
+))
+endif
+
+ifeq ($(OS),WNT)
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/win32/cfx_psrenderer \
+ UnpackedTarball/pdfium/core/fxge/win32/cpsoutput \
+ UnpackedTarball/pdfium/core/fxge/win32/cgdi_device_driver \
+ UnpackedTarball/pdfium/core/fxge/win32/cgdi_display_driver \
+ UnpackedTarball/pdfium/core/fxge/win32/cgdi_plus_ext \
+ UnpackedTarball/pdfium/core/fxge/win32/cgdi_printer_driver \
+ UnpackedTarball/pdfium/core/fxge/win32/cps_printer_driver \
+ UnpackedTarball/pdfium/core/fxge/win32/ctext_only_printer_driver \
+ UnpackedTarball/pdfium/core/fxge/win32/cwin32_platform \
+ UnpackedTarball/pdfium/core/fxge/win32/cfx_psfonttracker \
+ UnpackedTarball/pdfium/core/fxge/cfx_windowsrenderdevice \
+ UnpackedTarball/pdfium/core/fxcrt/cfx_fileaccess_windows \
+ UnpackedTarball/pdfium/core/fxcrt/fx_folder_windows \
+ UnpackedTarball/pdfium/third_party/base/win/win_util \
+ UnpackedTarball/pdfium/core/fpdfapi/render/cpdf_windowsrenderdevice \
+))
+
+$(eval $(call gb_Library_use_system_win32_libs,pdfium,\
+ gdi32 \
+))
+
+$(eval $(call gb_Library_add_defs,pdfium,\
+ -DWIN32 \
+))
+endif
+
+ifeq ($(OS),MACOSX)
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/apple/fx_apple_platform \
+ UnpackedTarball/pdfium/core/fxge/apple/fx_apple_impl \
+ UnpackedTarball/pdfium/core/fxge/apple/fx_quartz_device \
+))
+
+$(eval $(call gb_Library_use_system_darwin_frameworks,pdfium,\
+ AppKit \
+ CoreFoundation \
+))
+endif
+
+ifeq ($(OS),iOS)
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/apple/fx_apple_platform \
+ UnpackedTarball/pdfium/core/fxge/apple/fx_apple_impl \
+ UnpackedTarball/pdfium/core/fxge/apple/fx_quartz_device \
+))
+
+$(eval $(call gb_Library_use_system_darwin_frameworks,pdfium,\
+ CoreGraphics \
+ CoreFoundation \
+))
+endif
+
+ifeq ($(OS),ANDROID)
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/android/cfpf_skiadevicemodule \
+ UnpackedTarball/pdfium/core/fxge/android/cfpf_skiafont \
+ UnpackedTarball/pdfium/core/fxge/android/cfpf_skiafontmgr \
+ UnpackedTarball/pdfium/core/fxge/android/cfx_androidfontinfo \
+ UnpackedTarball/pdfium/core/fxge/android/fx_android_impl \
+ UnpackedTarball/pdfium/core/fxge/android/cfpf_skiapathfont \
+))
+endif
+
+ifeq ($(OS),LINUX)
+# fxge
+$(eval $(call gb_Library_add_generated_exception_objects,pdfium,\
+ UnpackedTarball/pdfium/core/fxge/linux/fx_linux_impl \
+))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/Makefile b/external/pdfium/Makefile
new file mode 100644
index 0000000000..e4968cf85f
--- /dev/null
+++ b/external/pdfium/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/Module_pdfium.mk b/external/pdfium/Module_pdfium.mk
new file mode 100644
index 0000000000..3a52d5bd0b
--- /dev/null
+++ b/external/pdfium/Module_pdfium.mk
@@ -0,0 +1,17 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,pdfium))
+
+$(eval $(call gb_Module_add_targets,pdfium,\
+ Library_pdfium \
+ UnpackedTarball_pdfium \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/README b/external/pdfium/README
new file mode 100644
index 0000000000..2be9e8f11b
--- /dev/null
+++ b/external/pdfium/README
@@ -0,0 +1,17 @@
+External package containing pdfium.
+
+"Insert -> Picture -> From File..." uses this library when a PDF file is
+selected.
+
+https://pdfium.googlesource.com/pdfium/
+
+How to update the tarball:
+
+version=$(git for-each-ref|grep chromium/|tail -n 1|sed 's|.*/||')
+git checkout --track origin/chromium/$version
+gclient sync
+git archive --prefix=pdfium/ --format=tar origin/chromium/${version} > pdfium-${version}.tar
+(cd ..; tar --append --file pdfium/pdfium-${version}.tar pdfium/third_party/freetype/src/include/ pdfium/third_party/freetype/src/src/)
+(cd ..; tar --append --file pdfium/pdfium-${version}.tar pdfium/third_party/abseil-cpp/absl/)
+(cd ..; tar --append --file pdfium/pdfium-${version}.tar pdfium/build/build_config.h pdfium/build/buildflag.h)
+bzip2 pdfium-${version}.tar
diff --git a/external/pdfium/UnpackedTarball_pdfium.mk b/external/pdfium/UnpackedTarball_pdfium.mk
new file mode 100644
index 0000000000..924bbe23a8
--- /dev/null
+++ b/external/pdfium/UnpackedTarball_pdfium.mk
@@ -0,0 +1,42 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+pdfium_patches :=
+# Fixes build on our baseline.
+pdfium_patches += build.patch.1
+# Avoids Windows 8 build dependency.
+pdfium_patches += windows7.patch.1
+pdfium_patches += c++20-comparison.patch
+
+pdfium_patches += constexpr-template.patch
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,pdfium))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,pdfium,$(PDFIUM_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,pdfium,0))
+
+$(eval $(call gb_UnpackedTarball_add_patches,pdfium,\
+ $(foreach patch,$(pdfium_patches),external/pdfium/$(patch)) \
+))
+
+$(eval $(call gb_UnpackedTarball_set_post_action,pdfium,\
+ mv third_party/bigint/BigInteger.cc third_party/bigint/BigInteger.cpp && \
+ mv third_party/bigint/BigIntegerUtils.cc third_party/bigint/BigIntegerUtils.cpp && \
+ mv third_party/bigint/BigUnsigned.cc third_party/bigint/BigUnsigned.cpp && \
+ mv third_party/bigint/BigUnsignedInABase.cc third_party/bigint/BigUnsignedInABase.cpp && \
+ mv third_party/base/debug/alias.cc third_party/base/debug/alias.cpp && \
+ mv third_party/base/memory/aligned_memory.cc third_party/base/memory/aligned_memory.cpp && \
+ mv third_party/base/win/win_util.cc third_party/base/win/win_util.cpp && \
+ mv third_party/libopenjpeg/opj_malloc.cc third_party/libopenjpeg/opj_malloc.cpp && \
+ mv third_party/abseil-cpp/absl/types/bad_optional_access.cc third_party/abseil-cpp/absl/types/bad_optional_access.cpp && \
+ mv third_party/abseil-cpp/absl/types/bad_variant_access.cc third_party/abseil-cpp/absl/types/bad_variant_access.cpp \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/pdfium/build.patch.1 b/external/pdfium/build.patch.1
new file mode 100644
index 0000000000..3dbd9427c0
--- /dev/null
+++ b/external/pdfium/build.patch.1
@@ -0,0 +1,132 @@
+-*- Mode: diff -*-
+diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
+index 7d2d549b8..c4864060a 100644
+--- a/core/fpdfapi/font/cpdf_cidfont.cpp
++++ b/core/fpdfapi/font/cpdf_cidfont.cpp
+@@ -754,7 +754,7 @@ int CPDF_CIDFont::GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) {
+ uint32_t maccode = CharCodeFromUnicodeForFreetypeEncoding(
+ FT_ENCODING_APPLE_ROMAN, name_unicode);
+ index = maccode ? FT_Get_Char_Index(face, maccode)
+- : FT_Get_Name_Index(face, name);
++ : FT_Get_Name_Index(face, const_cast<char*>(name));
+ }
+ if (index == 0 || index == 0xffff)
+ return charcode ? static_cast<int>(charcode) : -1;
+diff --git a/core/fpdfapi/font/cpdf_truetypefont.cpp b/core/fpdfapi/font/cpdf_truetypefont.cpp
+index f19ace9d0..562b015f0 100644
+--- a/core/fpdfapi/font/cpdf_truetypefont.cpp
++++ b/core/fpdfapi/font/cpdf_truetypefont.cpp
+@@ -90,7 +90,7 @@ void CPDF_TrueTypeFont::LoadGlyphMap() {
+ FT_ENCODING_APPLE_ROMAN,
+ m_Encoding.UnicodeFromCharCode(charcode));
+ if (!maccode) {
+- m_GlyphIndex[charcode] = FT_Get_Name_Index(face, name);
++ m_GlyphIndex[charcode] = FT_Get_Name_Index(face, const_cast<char*>(name));
+ } else {
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, maccode);
+ }
+@@ -104,7 +104,7 @@ void CPDF_TrueTypeFont::LoadGlyphMap() {
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(face, 32);
+ continue;
+ }
+- m_GlyphIndex[charcode] = FT_Get_Name_Index(face, name);
++ m_GlyphIndex[charcode] = FT_Get_Name_Index(face, const_cast<char*>(name));
+ if (m_GlyphIndex[charcode] != 0 || !bToUnicode)
+ continue;
+
+diff --git a/core/fpdfapi/font/cpdf_type1font.cpp b/core/fpdfapi/font/cpdf_type1font.cpp
+index 55510e7d7..2f13f00b8 100644
+--- a/core/fpdfapi/font/cpdf_type1font.cpp
++++ b/core/fpdfapi/font/cpdf_type1font.cpp
+@@ -263,7 +263,7 @@ void CPDF_Type1Font::LoadGlyphMap() {
+ static_cast<uint32_t>(charcode));
+ if (name) {
+ m_Encoding.SetUnicode(charcode, UnicodeFromAdobeName(name));
+- m_GlyphIndex[charcode] = FT_Get_Name_Index(m_Font.GetFaceRec(), name);
++ m_GlyphIndex[charcode] = FT_Get_Name_Index(m_Font.GetFaceRec(), const_cast<char*>(name));
+ } else {
+ m_GlyphIndex[charcode] = FT_Get_Char_Index(
+ m_Font.GetFaceRec(), static_cast<uint32_t>(charcode));
+@@ -294,7 +294,7 @@ void CPDF_Type1Font::LoadGlyphMap() {
+ continue;
+
+ m_Encoding.SetUnicode(charcode, UnicodeFromAdobeName(name));
+- m_GlyphIndex[charcode] = FT_Get_Name_Index(m_Font.GetFaceRec(), name);
++ m_GlyphIndex[charcode] = FT_Get_Name_Index(m_Font.GetFaceRec(), const_cast<char*>(name));
+ if (m_GlyphIndex[charcode] != 0)
+ continue;
+
+diff --git a/core/fpdfdoc/cpdf_metadata.cpp b/core/fpdfdoc/cpdf_metadata.cpp
+index 31564f45f..5858549ef 100644
+--- a/core/fpdfdoc/cpdf_metadata.cpp
++++ b/core/fpdfdoc/cpdf_metadata.cpp
+@@ -87,7 +87,7 @@ std::vector<UnsupportedFeature> CPDF_Metadata::CheckForSharedForm() const {
+ CFX_XMLParser parser(stream);
+ std::unique_ptr<CFX_XMLDocument> doc = parser.Parse();
+ if (!doc)
+- return {};
++ return std::vector<UnsupportedFeature>();
+
+ std::vector<UnsupportedFeature> unsupported;
+ CheckForSharedFormInternal(/*depth=*/0, doc->GetRoot(), &unsupported);
+diff --git a/core/fxcodec/jpx/cjpx_decoder.cpp b/core/fxcodec/jpx/cjpx_decoder.cpp
+index 2e7a72aa1..65fb3deaa 100644
+--- a/core/fxcodec/jpx/cjpx_decoder.cpp
++++ b/core/fxcodec/jpx/cjpx_decoder.cpp
+@@ -74,7 +74,7 @@ absl::optional<OpjImageRgbData> alloc_rgb(size_t size) {
+ if (!data.b)
+ return absl::nullopt;
+
+- return data;
++ return std::move(data);
+ }
+
+ void sycc_to_rgb(int offset,
+diff --git a/third_party/base/containers/span.h b/third_party/base/containers/span.h
+index 435fafa85..d8e8bfbc4 100644
+--- a/third_party/base/containers/span.h
++++ b/third_party/base/containers/span.h
+@@ -211,7 +211,7 @@ class TRIVIAL_ABI GSL_POINTER span {
+ #else
+ template <typename Container,
+ typename = internal::EnableIfSpanCompatibleContainer<Container, T>>
+- constexpr span(Container& container)
++ span(Container& container)
+ : span(container.data(), container.size()) {}
+ #endif
+
+@@ -225,7 +225,7 @@ class TRIVIAL_ABI GSL_POINTER span {
+ // Conversions from spans of compatible types: this allows a span<T> to be
+ // seamlessly used as a span<const T>, but not the other way around.
+ template <typename U, typename = internal::EnableIfLegalSpanConversion<U, T>>
+- constexpr span(const span<U>& other) : span(other.data(), other.size()) {}
++ span(const span<U>& other) : span(other.data(), other.size()) {}
+ span& operator=(const span& other) noexcept {
+ if (this != &other) {
+ data_ = other.data_;
+diff --git a/third_party/base/numerics/safe_conversions_impl.h b/third_party/base/numerics/safe_conversions_impl.h
+index 44c921a14..0152a89b7 100644
+--- a/third_party/base/numerics/safe_conversions_impl.h
++++ b/third_party/base/numerics/safe_conversions_impl.h
+@@ -89,7 +89,7 @@ constexpr typename std::make_unsigned<T>::type SafeUnsignedAbs(T value) {
+
+ // TODO(jschuh): Switch to std::is_constant_evaluated() once C++20 is supported.
+ // Alternately, the usage could be restructured for "consteval if" in C++23.
+-#define IsConstantEvaluated() (__builtin_is_constant_evaluated())
++#define IsConstantEvaluated() (false)
+
+ // TODO(jschuh): Debug builds don't reliably propagate constants, so we restrict
+ // some accelerated runtime paths to release builds until this can be forced
+diff --git a/third_party/libopenjpeg/openjpeg.c b/third_party/libopenjpeg/openjpeg.c
+index 9dd4256d7..949d65830 100644
+--- a/third_party/libopenjpeg/openjpeg.c
++++ b/third_party/libopenjpeg/openjpeg.c
+@@ -358,7 +358,7 @@ OPJ_BOOL OPJ_CALLCONV opj_setup_decoder(opj_codec_t *p_codec,
+ return OPJ_FALSE;
+ }
+
+-OPJ_API OPJ_BOOL OPJ_CALLCONV opj_decoder_set_strict_mode(opj_codec_t *p_codec,
++OPJ_BOOL OPJ_CALLCONV opj_decoder_set_strict_mode(opj_codec_t *p_codec,
+ OPJ_BOOL strict)
+ {
+ if (p_codec) {
diff --git a/external/pdfium/c++20-comparison.patch b/external/pdfium/c++20-comparison.patch
new file mode 100644
index 0000000000..d26fe66ad8
--- /dev/null
+++ b/external/pdfium/c++20-comparison.patch
@@ -0,0 +1,13 @@
+--- core/fxcrt/fx_memory_wrappers.h
++++ core/fxcrt/fx_memory_wrappers.h
+@@ -70,8 +70,8 @@ struct FxPartitionAllocAllocator {
+ }
+
+ // There's no state, so they are all the same,
+- bool operator==(const FxPartitionAllocAllocator& that) { return true; }
+- bool operator!=(const FxPartitionAllocAllocator& that) { return false; }
++ bool operator==(const FxPartitionAllocAllocator& that) const { return true; }
++ bool operator!=(const FxPartitionAllocAllocator& that) const { return false; }
+ };
+
+ // Used to put backing store for std::vector<> and such into the
diff --git a/external/pdfium/constexpr-template.patch b/external/pdfium/constexpr-template.patch
new file mode 100644
index 0000000000..b83b9f106a
--- /dev/null
+++ b/external/pdfium/constexpr-template.patch
@@ -0,0 +1,12 @@
+--- core/fxcodec/jbig2/JBig2_SymbolDict.h
++++ core/fxcodec/jbig2/JBig2_SymbolDict.h
+@@ -12,8 +12,7 @@
+ #include <vector>
+
+ #include "core/fxcodec/jbig2/JBig2_ArithDecoder.h"
+-
+-class CJBig2_Image;
++#include "core/fxcodec/jbig2/JBig2_Image.h"
+
+ class CJBig2_SymbolDict {
+ public:
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.cxx b/external/pdfium/inc/pch/precompiled_pdfium.cxx
new file mode 100644
index 0000000000..063660fe21
--- /dev/null
+++ b/external/pdfium/inc/pch/precompiled_pdfium.cxx
@@ -0,0 +1,12 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "precompiled_pdfium.hxx"
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/pdfium/inc/pch/precompiled_pdfium.hxx b/external/pdfium/inc/pch/precompiled_pdfium.hxx
new file mode 100644
index 0000000000..c58757bc60
--- /dev/null
+++ b/external/pdfium/inc/pch/precompiled_pdfium.hxx
@@ -0,0 +1,490 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+/*
+ This file has been autogenerated by update_pch.sh. It is possible to edit it
+ manually (such as when an include file has been moved/renamed/removed). All such
+ manual changes will be rewritten by the next run of update_pch.sh (which presumably
+ also fixes all possible problems, so it's usually better to use it).
+
+ Generated on 2023-08-15 08:05:49 using:
+ ./bin/update_pch external/pdfium pdfium --cutoff=1 --exclude:system --include:module --include:local
+
+ If after updating build fails, use the following command to locate conflicting headers:
+ ./bin/update_pch_bisect ./external/pdfium/inc/pch/precompiled_pdfium.hxx "make external/pdfium.build" --find-conflicts
+*/
+
+#include <sal/config.h>
+#if PCH_LEVEL >= 1
+#include <agg_curves.h>
+#include <agg_math.h>
+#include <agg_path_storage.h>
+#include <agg_rasterizer_scanline_aa.h>
+#include <agg_shorten_path.h>
+#include <agg_vcgen_dash.h>
+#include <agg_vcgen_stroke.h>
+#include <algorithm>
+#include <array>
+#include <cassert>
+#include <cfloat>
+#include <climits>
+#include <cmath>
+#include <ctype.h>
+#include <functional>
+#include <iterator>
+#include <limits.h>
+#include <limits>
+#include <list>
+#include <map>
+#include <math.h>
+#include <memory>
+#include <new>
+#include <numeric>
+#include <ostream>
+#include <queue>
+#include <set>
+#include <setjmp.h>
+#include <sstream>
+#include <stack>
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <string>
+#include <time.h>
+#include <tuple>
+#include <type_traits>
+#include <utility>
+#include <vector>
+#include <wchar.h>
+#endif // PCH_LEVEL >= 1
+#if PCH_LEVEL >= 2
+#endif // PCH_LEVEL >= 2
+#if PCH_LEVEL >= 3
+#include <build/build_config.h>
+#include <constants/access_permissions.h>
+#include <constants/annotation_common.h>
+#include <constants/annotation_flags.h>
+#include <constants/appearance.h>
+#include <constants/ascii.h>
+#include <constants/font_encodings.h>
+#include <constants/form_fields.h>
+#include <constants/form_flags.h>
+#include <constants/page_object.h>
+#include <constants/stream_dict_common.h>
+#include <constants/transparency.h>
+#include <core/fdrm/fx_crypt.h>
+#include <core/fpdfapi/cmaps/CNS1/cmaps_cns1.h>
+#include <core/fpdfapi/cmaps/GB1/cmaps_gb1.h>
+#include <core/fpdfapi/cmaps/Japan1/cmaps_japan1.h>
+#include <core/fpdfapi/cmaps/Korea1/cmaps_korea1.h>
+#include <core/fpdfapi/cmaps/fpdf_cmaps.h>
+#include <core/fpdfapi/edit/cpdf_contentstream_write_utils.h>
+#include <core/fpdfapi/edit/cpdf_creator.h>
+#include <core/fpdfapi/edit/cpdf_pagecontentgenerator.h>
+#include <core/fpdfapi/edit/cpdf_pagecontentmanager.h>
+#include <core/fpdfapi/edit/cpdf_stringarchivestream.h>
+#include <core/fpdfapi/font/cfx_cttgsubtable.h>
+#include <core/fpdfapi/font/cfx_stockfontarray.h>
+#include <core/fpdfapi/font/cpdf_cid2unicodemap.h>
+#include <core/fpdfapi/font/cpdf_cidfont.h>
+#include <core/fpdfapi/font/cpdf_cmap.h>
+#include <core/fpdfapi/font/cpdf_cmapparser.h>
+#include <core/fpdfapi/font/cpdf_font.h>
+#include <core/fpdfapi/font/cpdf_fontencoding.h>
+#include <core/fpdfapi/font/cpdf_fontglobals.h>
+#include <core/fpdfapi/font/cpdf_simplefont.h>
+#include <core/fpdfapi/font/cpdf_tounicodemap.h>
+#include <core/fpdfapi/font/cpdf_truetypefont.h>
+#include <core/fpdfapi/font/cpdf_type1font.h>
+#include <core/fpdfapi/font/cpdf_type3char.h>
+#include <core/fpdfapi/font/cpdf_type3font.h>
+#include <core/fpdfapi/page/cpdf_allstates.h>
+#include <core/fpdfapi/page/cpdf_annotcontext.h>
+#include <core/fpdfapi/page/cpdf_basedcs.h>
+#include <core/fpdfapi/page/cpdf_clippath.h>
+#include <core/fpdfapi/page/cpdf_color.h>
+#include <core/fpdfapi/page/cpdf_colorspace.h>
+#include <core/fpdfapi/page/cpdf_colorstate.h>
+#include <core/fpdfapi/page/cpdf_contentmarkitem.h>
+#include <core/fpdfapi/page/cpdf_contentmarks.h>
+#include <core/fpdfapi/page/cpdf_contentparser.h>
+#include <core/fpdfapi/page/cpdf_devicecs.h>
+#include <core/fpdfapi/page/cpdf_dib.h>
+#include <core/fpdfapi/page/cpdf_docpagedata.h>
+#include <core/fpdfapi/page/cpdf_expintfunc.h>
+#include <core/fpdfapi/page/cpdf_form.h>
+#include <core/fpdfapi/page/cpdf_formobject.h>
+#include <core/fpdfapi/page/cpdf_function.h>
+#include <core/fpdfapi/page/cpdf_generalstate.h>
+#include <core/fpdfapi/page/cpdf_graphicstates.h>
+#include <core/fpdfapi/page/cpdf_iccprofile.h>
+#include <core/fpdfapi/page/cpdf_image.h>
+#include <core/fpdfapi/page/cpdf_imageloader.h>
+#include <core/fpdfapi/page/cpdf_imageobject.h>
+#include <core/fpdfapi/page/cpdf_indexedcs.h>
+#include <core/fpdfapi/page/cpdf_meshstream.h>
+#include <core/fpdfapi/page/cpdf_occontext.h>
+#include <core/fpdfapi/page/cpdf_page.h>
+#include <core/fpdfapi/page/cpdf_pageimagecache.h>
+#include <core/fpdfapi/page/cpdf_pagemodule.h>
+#include <core/fpdfapi/page/cpdf_pageobject.h>
+#include <core/fpdfapi/page/cpdf_pageobjectholder.h>
+#include <core/fpdfapi/page/cpdf_path.h>
+#include <core/fpdfapi/page/cpdf_pathobject.h>
+#include <core/fpdfapi/page/cpdf_pattern.h>
+#include <core/fpdfapi/page/cpdf_patterncs.h>
+#include <core/fpdfapi/page/cpdf_psengine.h>
+#include <core/fpdfapi/page/cpdf_psfunc.h>
+#include <core/fpdfapi/page/cpdf_sampledfunc.h>
+#include <core/fpdfapi/page/cpdf_shadingobject.h>
+#include <core/fpdfapi/page/cpdf_shadingpattern.h>
+#include <core/fpdfapi/page/cpdf_stitchfunc.h>
+#include <core/fpdfapi/page/cpdf_streamcontentparser.h>
+#include <core/fpdfapi/page/cpdf_streamparser.h>
+#include <core/fpdfapi/page/cpdf_textobject.h>
+#include <core/fpdfapi/page/cpdf_textstate.h>
+#include <core/fpdfapi/page/cpdf_tilingpattern.h>
+#include <core/fpdfapi/page/cpdf_transferfunc.h>
+#include <core/fpdfapi/page/cpdf_transferfuncdib.h>
+#include <core/fpdfapi/page/cpdf_transparency.h>
+#include <core/fpdfapi/parser/cfdf_document.h>
+#include <core/fpdfapi/parser/cpdf_array.h>
+#include <core/fpdfapi/parser/cpdf_boolean.h>
+#include <core/fpdfapi/parser/cpdf_cross_ref_avail.h>
+#include <core/fpdfapi/parser/cpdf_cross_ref_table.h>
+#include <core/fpdfapi/parser/cpdf_crypto_handler.h>
+#include <core/fpdfapi/parser/cpdf_data_avail.h>
+#include <core/fpdfapi/parser/cpdf_dictionary.h>
+#include <core/fpdfapi/parser/cpdf_document.h>
+#include <core/fpdfapi/parser/cpdf_encryptor.h>
+#include <core/fpdfapi/parser/cpdf_flateencoder.h>
+#include <core/fpdfapi/parser/cpdf_hint_tables.h>
+#include <core/fpdfapi/parser/cpdf_indirect_object_holder.h>
+#include <core/fpdfapi/parser/cpdf_linearized_header.h>
+#include <core/fpdfapi/parser/cpdf_name.h>
+#include <core/fpdfapi/parser/cpdf_null.h>
+#include <core/fpdfapi/parser/cpdf_number.h>
+#include <core/fpdfapi/parser/cpdf_object.h>
+#include <core/fpdfapi/parser/cpdf_object_avail.h>
+#include <core/fpdfapi/parser/cpdf_object_stream.h>
+#include <core/fpdfapi/parser/cpdf_object_walker.h>
+#include <core/fpdfapi/parser/cpdf_page_object_avail.h>
+#include <core/fpdfapi/parser/cpdf_parser.h>
+#include <core/fpdfapi/parser/cpdf_read_validator.h>
+#include <core/fpdfapi/parser/cpdf_reference.h>
+#include <core/fpdfapi/parser/cpdf_security_handler.h>
+#include <core/fpdfapi/parser/cpdf_simple_parser.h>
+#include <core/fpdfapi/parser/cpdf_stream.h>
+#include <core/fpdfapi/parser/cpdf_stream_acc.h>
+#include <core/fpdfapi/parser/cpdf_string.h>
+#include <core/fpdfapi/parser/cpdf_syntax_parser.h>
+#include <core/fpdfapi/parser/fpdf_parser_decode.h>
+#include <core/fpdfapi/parser/fpdf_parser_utility.h>
+#include <core/fpdfapi/parser/object_tree_traversal_util.h>
+#include <core/fpdfapi/render/charposlist.h>
+#include <core/fpdfapi/render/cpdf_devicebuffer.h>
+#include <core/fpdfapi/render/cpdf_docrenderdata.h>
+#include <core/fpdfapi/render/cpdf_imagerenderer.h>
+#include <core/fpdfapi/render/cpdf_pagerendercontext.h>
+#include <core/fpdfapi/render/cpdf_progressiverenderer.h>
+#include <core/fpdfapi/render/cpdf_rendercontext.h>
+#include <core/fpdfapi/render/cpdf_renderoptions.h>
+#include <core/fpdfapi/render/cpdf_rendershading.h>
+#include <core/fpdfapi/render/cpdf_renderstatus.h>
+#include <core/fpdfapi/render/cpdf_rendertiling.h>
+#include <core/fpdfapi/render/cpdf_scaledrenderbuffer.h>
+#include <core/fpdfapi/render/cpdf_textrenderer.h>
+#include <core/fpdfapi/render/cpdf_type3cache.h>
+#include <core/fpdfapi/render/cpdf_type3glyphmap.h>
+#include <core/fpdfdoc/cpdf_aaction.h>
+#include <core/fpdfdoc/cpdf_action.h>
+#include <core/fpdfdoc/cpdf_annot.h>
+#include <core/fpdfdoc/cpdf_annotlist.h>
+#include <core/fpdfdoc/cpdf_apsettings.h>
+#include <core/fpdfdoc/cpdf_bafontmap.h>
+#include <core/fpdfdoc/cpdf_bookmark.h>
+#include <core/fpdfdoc/cpdf_bookmarktree.h>
+#include <core/fpdfdoc/cpdf_color_utils.h>
+#include <core/fpdfdoc/cpdf_defaultappearance.h>
+#include <core/fpdfdoc/cpdf_dest.h>
+#include <core/fpdfdoc/cpdf_filespec.h>
+#include <core/fpdfdoc/cpdf_formcontrol.h>
+#include <core/fpdfdoc/cpdf_formfield.h>
+#include <core/fpdfdoc/cpdf_generateap.h>
+#include <core/fpdfdoc/cpdf_icon.h>
+#include <core/fpdfdoc/cpdf_iconfit.h>
+#include <core/fpdfdoc/cpdf_interactiveform.h>
+#include <core/fpdfdoc/cpdf_link.h>
+#include <core/fpdfdoc/cpdf_linklist.h>
+#include <core/fpdfdoc/cpdf_metadata.h>
+#include <core/fpdfdoc/cpdf_nametree.h>
+#include <core/fpdfdoc/cpdf_numbertree.h>
+#include <core/fpdfdoc/cpdf_pagelabel.h>
+#include <core/fpdfdoc/cpdf_structelement.h>
+#include <core/fpdfdoc/cpdf_structtree.h>
+#include <core/fpdfdoc/cpdf_viewerpreferences.h>
+#include <core/fpdfdoc/cpvt_fontmap.h>
+#include <core/fpdfdoc/cpvt_section.h>
+#include <core/fpdfdoc/cpvt_variabletext.h>
+#include <core/fpdfdoc/cpvt_word.h>
+#include <core/fpdfdoc/cpvt_wordinfo.h>
+#include <core/fpdfdoc/ipvt_fontmap.h>
+#include <core/fpdftext/cpdf_linkextract.h>
+#include <core/fpdftext/cpdf_textpage.h>
+#include <core/fpdftext/cpdf_textpagefind.h>
+#include <core/fpdftext/unicodenormalizationdata.h>
+#include <core/fxcodec/basic/basicmodule.h>
+#include <core/fxcodec/cfx_codec_memory.h>
+#include <core/fxcodec/fax/faxmodule.h>
+#include <core/fxcodec/flate/flatemodule.h>
+#include <core/fxcodec/fx_codec.h>
+#include <core/fxcodec/gif/cfx_gif.h>
+#include <core/fxcodec/gif/lzw_decompressor.h>
+#include <core/fxcodec/icc/icc_transform.h>
+#include <core/fxcodec/jbig2/JBig2_ArithDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_ArithIntDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_BitStream.h>
+#include <core/fxcodec/jbig2/JBig2_Context.h>
+#include <core/fxcodec/jbig2/JBig2_Define.h>
+#include <core/fxcodec/jbig2/JBig2_DocumentContext.h>
+#include <core/fxcodec/jbig2/JBig2_GrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_GrrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_HtrdProc.h>
+#include <core/fxcodec/jbig2/JBig2_HuffmanDecoder.h>
+#include <core/fxcodec/jbig2/JBig2_HuffmanTable.h>
+#include <core/fxcodec/jbig2/JBig2_Image.h>
+#include <core/fxcodec/jbig2/JBig2_PatternDict.h>
+#include <core/fxcodec/jbig2/JBig2_PddProc.h>
+#include <core/fxcodec/jbig2/JBig2_SddProc.h>
+#include <core/fxcodec/jbig2/JBig2_Segment.h>
+#include <core/fxcodec/jbig2/JBig2_SymbolDict.h>
+#include <core/fxcodec/jbig2/JBig2_TrdProc.h>
+#include <core/fxcodec/jbig2/jbig2_decoder.h>
+#include <core/fxcodec/jpeg/jpeg_common.h>
+#include <core/fxcodec/jpeg/jpegmodule.h>
+#include <core/fxcodec/jpx/cjpx_decoder.h>
+#include <core/fxcodec/jpx/jpx_decode_utils.h>
+#include <core/fxcodec/scanlinedecoder.h>
+#include <core/fxcrt/autonuller.h>
+#include <core/fxcrt/autorestorer.h>
+#include <core/fxcrt/binary_buffer.h>
+#include <core/fxcrt/bytestring.h>
+#include <core/fxcrt/cfx_bitstream.h>
+#include <core/fxcrt/cfx_datetime.h>
+#include <core/fxcrt/cfx_memorystream.h>
+#include <core/fxcrt/cfx_read_only_span_stream.h>
+#include <core/fxcrt/cfx_read_only_string_stream.h>
+#include <core/fxcrt/cfx_read_only_vector_stream.h>
+#include <core/fxcrt/cfx_seekablestreamproxy.h>
+#include <core/fxcrt/cfx_timer.h>
+#include <core/fxcrt/code_point_view.h>
+#include <core/fxcrt/css/cfx_css.h>
+#include <core/fxcrt/css/cfx_csscolorvalue.h>
+#include <core/fxcrt/css/cfx_csscomputedstyle.h>
+#include <core/fxcrt/css/cfx_csscustomproperty.h>
+#include <core/fxcrt/css/cfx_cssdata.h>
+#include <core/fxcrt/css/cfx_cssdeclaration.h>
+#include <core/fxcrt/css/cfx_cssenumvalue.h>
+#include <core/fxcrt/css/cfx_cssinputtextbuf.h>
+#include <core/fxcrt/css/cfx_cssnumbervalue.h>
+#include <core/fxcrt/css/cfx_cssoutputtextbuf.h>
+#include <core/fxcrt/css/cfx_csspropertyholder.h>
+#include <core/fxcrt/css/cfx_cssrulecollection.h>
+#include <core/fxcrt/css/cfx_cssselector.h>
+#include <core/fxcrt/css/cfx_cssstringvalue.h>
+#include <core/fxcrt/css/cfx_cssstylerule.h>
+#include <core/fxcrt/css/cfx_cssstyleselector.h>
+#include <core/fxcrt/css/cfx_cssstylesheet.h>
+#include <core/fxcrt/css/cfx_csssyntaxparser.h>
+#include <core/fxcrt/css/cfx_cssvalue.h>
+#include <core/fxcrt/css/cfx_cssvaluelist.h>
+#include <core/fxcrt/css/cfx_cssvaluelistparser.h>
+#include <core/fxcrt/data_vector.h>
+#include <core/fxcrt/fileaccess_iface.h>
+#include <core/fxcrt/fixed_try_alloc_zeroed_data_vector.h>
+#include <core/fxcrt/fixed_uninit_data_vector.h>
+#include <core/fxcrt/fixed_zeroed_data_vector.h>
+#include <core/fxcrt/fx_2d_size.h>
+#include <core/fxcrt/fx_bidi.h>
+#include <core/fxcrt/fx_codepage.h>
+#include <core/fxcrt/fx_coordinates.h>
+#include <core/fxcrt/fx_extension.h>
+#include <core/fxcrt/fx_folder.h>
+#include <core/fxcrt/fx_memcpy_wrappers.h>
+#include <core/fxcrt/fx_memory.h>
+#include <core/fxcrt/fx_memory_wrappers.h>
+#include <core/fxcrt/fx_number.h>
+#include <core/fxcrt/fx_random.h>
+#include <core/fxcrt/fx_safe_types.h>
+#include <core/fxcrt/fx_stream.h>
+#include <core/fxcrt/fx_string.h>
+#include <core/fxcrt/fx_string_wrappers.h>
+#include <core/fxcrt/fx_system.h>
+#include <core/fxcrt/fx_unicode.h>
+#include <core/fxcrt/maybe_owned.h>
+#include <core/fxcrt/observed_ptr.h>
+#include <core/fxcrt/pauseindicator_iface.h>
+#include <core/fxcrt/retain_ptr.h>
+#include <core/fxcrt/scoped_set_insertion.h>
+#include <core/fxcrt/span_util.h>
+#include <core/fxcrt/stl_util.h>
+#include <core/fxcrt/string_data_template.h>
+#include <core/fxcrt/string_pool_template.h>
+#include <core/fxcrt/string_view_template.h>
+#include <core/fxcrt/unowned_ptr.h>
+#include <core/fxcrt/unowned_ptr_exclusion.h>
+#include <core/fxcrt/utf16.h>
+#include <core/fxcrt/widestring.h>
+#include <core/fxcrt/widetext_buffer.h>
+#include <core/fxcrt/xml/cfx_xmlchardata.h>
+#include <core/fxcrt/xml/cfx_xmldocument.h>
+#include <core/fxcrt/xml/cfx_xmlelement.h>
+#include <core/fxcrt/xml/cfx_xmlinstruction.h>
+#include <core/fxcrt/xml/cfx_xmlnode.h>
+#include <core/fxcrt/xml/cfx_xmlparser.h>
+#include <core/fxcrt/xml/cfx_xmltext.h>
+#include <core/fxge/agg/fx_agg_driver.h>
+#include <core/fxge/calculate_pitch.h>
+#include <core/fxge/cfx_cliprgn.h>
+#include <core/fxge/cfx_color.h>
+#include <core/fxge/cfx_defaultrenderdevice.h>
+#include <core/fxge/cfx_drawutils.h>
+#include <core/fxge/cfx_face.h>
+#include <core/fxge/cfx_fillrenderoptions.h>
+#include <core/fxge/cfx_folderfontinfo.h>
+#include <core/fxge/cfx_font.h>
+#include <core/fxge/cfx_fontcache.h>
+#include <core/fxge/cfx_fontmapper.h>
+#include <core/fxge/cfx_fontmgr.h>
+#include <core/fxge/cfx_gemodule.h>
+#include <core/fxge/cfx_glyphbitmap.h>
+#include <core/fxge/cfx_glyphcache.h>
+#include <core/fxge/cfx_graphstate.h>
+#include <core/fxge/cfx_graphstatedata.h>
+#include <core/fxge/cfx_path.h>
+#include <core/fxge/cfx_renderdevice.h>
+#include <core/fxge/cfx_substfont.h>
+#include <core/fxge/cfx_textrenderoptions.h>
+#include <core/fxge/cfx_unicodeencoding.h>
+#include <core/fxge/dib/blend.h>
+#include <core/fxge/dib/cfx_bitmapcomposer.h>
+#include <core/fxge/dib/cfx_bitmapstorer.h>
+#include <core/fxge/dib/cfx_cmyk_to_srgb.h>
+#include <core/fxge/dib/cfx_dibbase.h>
+#include <core/fxge/dib/cfx_dibitmap.h>
+#include <core/fxge/dib/cfx_imagerenderer.h>
+#include <core/fxge/dib/cfx_imagestretcher.h>
+#include <core/fxge/dib/cfx_imagetransformer.h>
+#include <core/fxge/dib/cfx_scanlinecompositor.h>
+#include <core/fxge/dib/cstretchengine.h>
+#include <core/fxge/dib/fx_dib.h>
+#include <core/fxge/dib/scanlinecomposer_iface.h>
+#include <core/fxge/fontdata/chromefontdata/chromefontdata.h>
+#include <core/fxge/freetype/fx_freetype.h>
+#include <core/fxge/fx_font.h>
+#include <core/fxge/renderdevicedriver_iface.h>
+#include <core/fxge/scoped_font_transform.h>
+#include <core/fxge/systemfontinfo_iface.h>
+#include <core/fxge/text_char_pos.h>
+#include <core/fxge/text_glyph_pos.h>
+#include <fpdfsdk/cpdfsdk_annot.h>
+#include <fpdfsdk/cpdfsdk_annotiteration.h>
+#include <fpdfsdk/cpdfsdk_annotiterator.h>
+#include <fpdfsdk/cpdfsdk_appstream.h>
+#include <fpdfsdk/cpdfsdk_baannot.h>
+#include <fpdfsdk/cpdfsdk_customaccess.h>
+#include <fpdfsdk/cpdfsdk_filewriteadapter.h>
+#include <fpdfsdk/cpdfsdk_formfillenvironment.h>
+#include <fpdfsdk/cpdfsdk_helpers.h>
+#include <fpdfsdk/cpdfsdk_interactiveform.h>
+#include <fpdfsdk/cpdfsdk_pageview.h>
+#include <fpdfsdk/cpdfsdk_pauseadapter.h>
+#include <fpdfsdk/cpdfsdk_renderpage.h>
+#include <fpdfsdk/cpdfsdk_widget.h>
+#include <fpdfsdk/formfiller/cffl_button.h>
+#include <fpdfsdk/formfiller/cffl_checkbox.h>
+#include <fpdfsdk/formfiller/cffl_combobox.h>
+#include <fpdfsdk/formfiller/cffl_fieldaction.h>
+#include <fpdfsdk/formfiller/cffl_formfield.h>
+#include <fpdfsdk/formfiller/cffl_interactiveformfiller.h>
+#include <fpdfsdk/formfiller/cffl_listbox.h>
+#include <fpdfsdk/formfiller/cffl_perwindowdata.h>
+#include <fpdfsdk/formfiller/cffl_pushbutton.h>
+#include <fpdfsdk/formfiller/cffl_radiobutton.h>
+#include <fpdfsdk/formfiller/cffl_textfield.h>
+#include <fpdfsdk/formfiller/cffl_textobject.h>
+#include <fpdfsdk/pwl/cpwl_button.h>
+#include <fpdfsdk/pwl/cpwl_caret.h>
+#include <fpdfsdk/pwl/cpwl_cbbutton.h>
+#include <fpdfsdk/pwl/cpwl_cblistbox.h>
+#include <fpdfsdk/pwl/cpwl_combo_box.h>
+#include <fpdfsdk/pwl/cpwl_edit.h>
+#include <fpdfsdk/pwl/cpwl_edit_impl.h>
+#include <fpdfsdk/pwl/cpwl_list_box.h>
+#include <fpdfsdk/pwl/cpwl_list_ctrl.h>
+#include <fpdfsdk/pwl/cpwl_sbbutton.h>
+#include <fpdfsdk/pwl/cpwl_scroll_bar.h>
+#include <fpdfsdk/pwl/cpwl_special_button.h>
+#include <fpdfsdk/pwl/cpwl_wnd.h>
+#include <fpdfsdk/pwl/ipwl_fillernotify.h>
+#include <fxjs/cjs_event_context_stub.h>
+#include <fxjs/cjs_runtimestub.h>
+#include <fxjs/ijs_event_context.h>
+#include <fxjs/ijs_runtime.h>
+#include <public/fpdf_annot.h>
+#include <public/fpdf_attachment.h>
+#include <public/fpdf_catalog.h>
+#include <public/fpdf_dataavail.h>
+#include <public/fpdf_doc.h>
+#include <public/fpdf_edit.h>
+#include <public/fpdf_ext.h>
+#include <public/fpdf_flatten.h>
+#include <public/fpdf_formfill.h>
+#include <public/fpdf_fwlevent.h>
+#include <public/fpdf_progressive.h>
+#include <public/fpdf_save.h>
+#include <public/fpdf_searchex.h>
+#include <public/fpdf_signature.h>
+#include <public/fpdf_structtree.h>
+#include <public/fpdf_sysfontinfo.h>
+#include <public/fpdf_text.h>
+#include <public/fpdf_transformpage.h>
+#include <public/fpdfview.h>
+#include <third_party/abseil-cpp/absl/container/inlined_vector.h>
+#include <third_party/abseil-cpp/absl/types/optional.h>
+#include <third_party/abseil-cpp/absl/types/variant.h>
+#include <third_party/agg23/agg_clip_liang_barsky.h>
+#include <third_party/agg23/agg_conv_dash.h>
+#include <third_party/agg23/agg_conv_stroke.h>
+#include <third_party/agg23/agg_curves.h>
+#include <third_party/agg23/agg_path_storage.h>
+#include <third_party/agg23/agg_pixfmt_gray.h>
+#include <third_party/agg23/agg_rasterizer_scanline_aa.h>
+#include <third_party/agg23/agg_renderer_scanline.h>
+#include <third_party/agg23/agg_scanline_u.h>
+#include <third_party/base/check.h>
+#include <third_party/base/check_op.h>
+#include <third_party/base/compiler_specific.h>
+#include <third_party/base/containers/adapters.h>
+#include <third_party/base/containers/contains.h>
+#include <third_party/base/containers/span.h>
+#include <third_party/base/debug/alias.h>
+#include <third_party/base/memory/aligned_memory.h>
+#include <third_party/base/memory/ptr_util.h>
+#include <third_party/base/notreached.h>
+#include <third_party/base/numerics/clamped_math.h>
+#include <third_party/base/numerics/safe_conversions.h>
+#include <third_party/base/numerics/safe_math.h>
+#endif // PCH_LEVEL >= 3
+#if PCH_LEVEL >= 4
+#endif // PCH_LEVEL >= 4
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/external/pdfium/windows7.patch.1 b/external/pdfium/windows7.patch.1
new file mode 100644
index 0000000000..d33f273ff4
--- /dev/null
+++ b/external/pdfium/windows7.patch.1
@@ -0,0 +1,34 @@
+diff --git a/third_party/base/win/win_util.cc b/third_party/base/win/win_util.cc
+index ae2dba84d..7a3718848 100644
+--- a/third_party/base/win/win_util.cc
++++ b/third_party/base/win/win_util.cc
+@@ -12,28 +12,7 @@ namespace base {
+ namespace win {
+
+ bool IsUser32AndGdi32Available() {
+- static auto is_user32_and_gdi32_available = []() {
+- // If win32k syscalls aren't disabled, then user32 and gdi32 are available.
+-
+- typedef decltype(
+- GetProcessMitigationPolicy)* GetProcessMitigationPolicyType;
+- GetProcessMitigationPolicyType get_process_mitigation_policy_func =
+- reinterpret_cast<GetProcessMitigationPolicyType>(GetProcAddress(
+- GetModuleHandle(L"kernel32.dll"), "GetProcessMitigationPolicy"));
+-
+- if (!get_process_mitigation_policy_func)
+- return true;
+-
+- PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY policy = {};
+- if (get_process_mitigation_policy_func(GetCurrentProcess(),
+- ProcessSystemCallDisablePolicy,
+- &policy, sizeof(policy))) {
+- return policy.DisallowWin32kSystemCalls == 0;
+- }
+-
+- return true;
+- }();
+- return is_user32_and_gdi32_available;
++ return true;
+ }
+
+ } // namespace win