Commit 3d03024ab235cf09517b8b1125093a9062151da2

Authored by Jay Berkenbilt
1 parent d263a049

oss-fuzz initial integration

.gitignore
@@ -13,6 +13,7 @@ doc/qpdf.1 @@ -13,6 +13,7 @@ doc/qpdf.1
13 doc/zlib-flate.1 13 doc/zlib-flate.1
14 examples/build/ 14 examples/build/
15 external-libs 15 external-libs
  16 +fuzz/build/
16 libqpdf.map 17 libqpdf.map
17 libqpdf.pc 18 libqpdf.pc
18 libqpdf/build/ 19 libqpdf/build/
ChangeLog
  1 +2019-06-13 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Perform initial integration of Google's oss-fuzz project by
  4 + copying the fuzzer someone from Google already did into the qpdf
  5 + repository and adding build support. This shift in control is in
  6 + preparation for an ideal integration with oss-fuzz.
  7 +
1 2019-06-09 Jay Berkenbilt <ejb@ql.org> 8 2019-06-09 Jay Berkenbilt <ejb@ql.org>
2 9
3 * When /DecodeParms is an empty list, ignore it on read and delete 10 * When /DecodeParms is an empty list, ignore it on read and delete
Makefile
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 # install to install in a separate location. This is useful for 35 # install to install in a separate location. This is useful for
36 # packagers. 36 # packagers.
37 37
38 -BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf examples 38 +BUILD_ITEMS := manual libqpdf zlib-flate libtests qpdf fuzz examples
39 OUTPUT_DIR = build 39 OUTPUT_DIR = build
40 ALL_TARGETS = 40 ALL_TARGETS =
41 41
NOTICE.md
@@ -10,6 +10,8 @@ Versions of qpdf prior to version 7 were released under the terms of version 2.0 @@ -10,6 +10,8 @@ Versions of qpdf prior to version 7 were released under the terms of version 2.0
10 10
11 The qpdf distribution includes a copy of [qtest](http://qtest.qbilt.org), which is released under the terms of the [version 2.0 of the Artistic license](https://opensource.org/licenses/Artistic-2.0), which can be found at https://opensource.org/licenses/Artistic-2.0. 11 The qpdf distribution includes a copy of [qtest](http://qtest.qbilt.org), which is released under the terms of the [version 2.0 of the Artistic license](https://opensource.org/licenses/Artistic-2.0), which can be found at https://opensource.org/licenses/Artistic-2.0.
12 12
  13 +The standalone fuzz target runner (fuzz/standalone_fuzz_target_runner.cc) is copyright 2017 by Google and is also released under the Apache license, Version 2.0.
  14 +
13 The Rijndael encryption implementation used as the basis for AES encryption and decryption support comes from Philip J. Erdelsky's public domain implementation. The files `libqpdf/rijndael.cc` and `libqpdf/qpdf/rijndael.h` remain in the public domain. They were obtained from 15 The Rijndael encryption implementation used as the basis for AES encryption and decryption support comes from Philip J. Erdelsky's public domain implementation. The files `libqpdf/rijndael.cc` and `libqpdf/qpdf/rijndael.h` remain in the public domain. They were obtained from
14 * http://www.efgh.com/software/rijndael.htm 16 * http://www.efgh.com/software/rijndael.htm
15 * http://www.efgh.com/software/rijndael.txt 17 * http://www.efgh.com/software/rijndael.txt
README-maintainer
@@ -17,6 +17,19 @@ Memory checks: @@ -17,6 +17,19 @@ Memory checks:
17 LDFLAGS="-fsanitize=address -fsanitize=undefined" \ 17 LDFLAGS="-fsanitize=address -fsanitize=undefined" \
18 --enable-werror --disable-shared 18 --enable-werror --disable-shared
19 19
  20 +GOOGLE OSS-FUZZ
  21 +
  22 +* https://github.com/google/oss-fuzz/tree/master/projects/qpdf
  23 +* To test locally, see https://github.com/google/oss-fuzz/tree/master/docs/,
  24 + especially new_project_guide.md
  25 +
  26 +Clone the oss-fuzz project. From the root directory of the repository:
  27 +
  28 + python infra/helper.py build_image --pull qpdf
  29 + python infra/helper.py build_fuzzers qpdf
  30 + python infra/helper.py check_build qpdf
  31 + python infra/helper.py build_fuzzers --sanitizer coverage qpdf
  32 + python infra/helper.py coverage qpdf
20 33
21 CODING RULES 34 CODING RULES
22 35
autoconf.mk.in
@@ -37,6 +37,7 @@ XMLLINT=@XMLLINT@ @@ -37,6 +37,7 @@ XMLLINT=@XMLLINT@
37 BUILD_HTML=@BUILD_HTML@ 37 BUILD_HTML=@BUILD_HTML@
38 BUILD_PDF=@BUILD_PDF@ 38 BUILD_PDF=@BUILD_PDF@
39 VALIDATE_DOC=@VALIDATE_DOC@ 39 VALIDATE_DOC=@VALIDATE_DOC@
  40 +OSS_FUZZ=@OSS_FUZZ@
40 QPDF_SKIP_TEST_COMPARE_IMAGES=@QPDF_SKIP_TEST_COMPARE_IMAGES@ 41 QPDF_SKIP_TEST_COMPARE_IMAGES=@QPDF_SKIP_TEST_COMPARE_IMAGES@
41 BUILDRULES=@BUILDRULES@ 42 BUILDRULES=@BUILDRULES@
42 HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@ 43 HAVE_LD_VERSION_SCRIPT=@HAVE_LD_VERSION_SCRIPT@
autofiles.sums
1 -ba2adf968b787efe32cd4396a5cfeceeb52d2c48686bdc21a3b03edae169632c configure.ac 1 +f0057d67ba676a48d07264f6c9a947c59c36dee48dbd6c41903d5f03c586a9cf configure.ac
2 35bc5c645dc42d47f2daeea06f8f3e767c8a1aee6a35eb2b4854fd2ce66c3413 m4/ax_random_device.m4 2 35bc5c645dc42d47f2daeea06f8f3e767c8a1aee6a35eb2b4854fd2ce66c3413 m4/ax_random_device.m4
3 37f8897d5f68d7d484e5457832a8f190ddb7507fa2a467cb7ee2be40a4364643 m4/libtool.m4 3 37f8897d5f68d7d484e5457832a8f190ddb7507fa2a467cb7ee2be40a4364643 m4/libtool.m4
4 e77ebba8361b36f14b4d0927173a034b98c5d05049697a9ded84d85eb99a7990 m4/ltoptions.m4 4 e77ebba8361b36f14b4d0927173a034b98c5d05049697a9ded84d85eb99a7990 m4/ltoptions.m4
azure-pipelines.yml
@@ -100,3 +100,11 @@ jobs: @@ -100,3 +100,11 @@ jobs:
100 buildPlatform: AppImage 100 buildPlatform: AppImage
101 dependsOn: Linux 101 dependsOn: Linux
102 condition: succeeded() 102 condition: succeeded()
  103 +- job: Fuzzers
  104 + pool:
  105 + vmImage: ubuntu-16.04
  106 + steps:
  107 + - script: azure-pipelines/build-fuzzer
  108 + displayName: 'Build Fuzzer'
  109 + dependsOn: Linux
  110 + condition: succeeded()
azure-pipelines/build-fuzzer 0 → 100755
  1 +#!/bin/bash
  2 +set -ex
  3 +export WORK=$PWD/work
  4 +export OUT=$PWD/out
  5 +mkdir -p $WORK $OUT
  6 +sudo apt-get update
  7 +sudo apt-get -y install \
  8 + autoconf build-essential zlib1g-dev libjpeg-dev
  9 +./fuzz/oss-fuzz-build
  10 +ls -l out/qpdf*fuzzer
  11 +ls -l out/
configure
@@ -630,6 +630,7 @@ ac_includes_default=&quot;\ @@ -630,6 +630,7 @@ ac_includes_default=&quot;\
630 630
631 ac_subst_vars='LTLIBOBJS 631 ac_subst_vars='LTLIBOBJS
632 LIBOBJS 632 LIBOBJS
  633 +OSS_FUZZ
633 VALIDATE_DOC 634 VALIDATE_DOC
634 BUILD_PDF 635 BUILD_PDF
635 BUILD_HTML 636 BUILD_HTML
@@ -774,6 +775,7 @@ enable_doc_maintenance @@ -774,6 +775,7 @@ enable_doc_maintenance
774 enable_html_doc 775 enable_html_doc
775 enable_pdf_doc 776 enable_pdf_doc
776 enable_validate_doc 777 enable_validate_doc
  778 +enable_oss_fuzz
777 ' 779 '
778 ac_precious_vars='build_alias 780 ac_precious_vars='build_alias
779 host_alias 781 host_alias
@@ -1449,6 +1451,8 @@ Optional Features: @@ -1449,6 +1451,8 @@ Optional Features:
1449 --enable-html-doc whether to build HTML documents 1451 --enable-html-doc whether to build HTML documents
1450 --enable-pdf-doc whether to build PDF documents 1452 --enable-pdf-doc whether to build PDF documents
1451 --enable-validate-doc whether to validate xml document source 1453 --enable-validate-doc whether to validate xml document source
  1454 + --enable-doc-maintenance
  1455 + if set, build static fuzzers for oss-fuzz
1452 1456
1453 Optional Packages: 1457 Optional Packages:
1454 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] 1458 --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -16924,6 +16928,19 @@ else @@ -16924,6 +16928,19 @@ else
16924 fi 16928 fi
16925 16929
16926 16930
  16931 +
  16932 +# Check whether --enable-oss-fuzz was given.
  16933 +if test "${enable_oss_fuzz+set}" = set; then :
  16934 + enableval=$enable_oss_fuzz; if test "$enableval" = "yes"; then
  16935 + OSS_FUZZ=1;
  16936 + else
  16937 + OSS_FUZZ=0;
  16938 + fi
  16939 +else
  16940 + OSS_FUZZ=0
  16941 +fi
  16942 +
  16943 +
16927 if test "$VALIDATE_DOC" = "1"; then 16944 if test "$VALIDATE_DOC" = "1"; then
16928 if test "$XMLLINT" = ""; then 16945 if test "$XMLLINT" = ""; then
16929 MISSING_XMLLINT=1 16946 MISSING_XMLLINT=1
configure.ac
@@ -501,6 +501,17 @@ AC_ARG_ENABLE(validate-doc, @@ -501,6 +501,17 @@ AC_ARG_ENABLE(validate-doc,
501 fi], 501 fi],
502 [VALIDATE_DOC=$doc_default]) 502 [VALIDATE_DOC=$doc_default])
503 503
  504 +AC_SUBST(OSS_FUZZ)
  505 +AC_ARG_ENABLE(oss-fuzz,
  506 + AS_HELP_STRING([--enable-doc-maintenance],
  507 + [if set, build static fuzzers for oss-fuzz]),
  508 + [if test "$enableval" = "yes"; then
  509 + OSS_FUZZ=1;
  510 + else
  511 + OSS_FUZZ=0;
  512 + fi],
  513 + [OSS_FUZZ=0])
  514 +
504 if test "$VALIDATE_DOC" = "1"; then 515 if test "$VALIDATE_DOC" = "1"; then
505 if test "$XMLLINT" = ""; then 516 if test "$XMLLINT" = ""; then
506 MISSING_XMLLINT=1 517 MISSING_XMLLINT=1
fuzz/Makefile 0 → 100644
  1 +include ../make/proxy.mk
fuzz/README.md 0 → 100644
  1 +pdf.dict was copied from https://raw.githubusercontent.com/rc0r/afl-fuzz/master/dictionaries/pdf.dict
fuzz/build.mk 0 → 100644
  1 +# This directory contains support for Google's oss-fuzz project. See
  2 +# https://github.com/google/oss-fuzz/tree/master/projects/qpdf
  3 +
  4 +FUZZERS = \
  5 + qpdf_read_memory_fuzzer
  6 +
  7 +DEFAULT_FUZZ_RUNNER := standalone_fuzz_target_runner
  8 +OBJ_DEFAULT_FUZZ := fuzz/$(OUTPUT_DIR)/$(DEFAULT_FUZZ_RUNNER).$(OBJ)
  9 +
  10 +BINS_fuzz = $(foreach B,$(FUZZERS),fuzz/$(OUTPUT_DIR)/$(call binname,$(B)))
  11 +TARGETS_fuzz = $(OBJ_DEFAULT_FUZZ) $(BINS_fuzz)
  12 +
  13 +INCLUDES_fuzz = include
  14 +
  15 +# LIB_FUZZING_ENGINE is overridden by oss-fuzz
  16 +LIB_FUZZING_ENGINE ?= $(OBJ_DEFAULT_FUZZ)
  17 +
  18 +# Depend on OBJ_DEFAULT_FUZZ to ensure that it is always compiled.
  19 +# Don't depend on LIB_FUZZING_ENGINE, which we can't build. When used
  20 +# by oss-fuzz, it will be there.
  21 +$(BINS_fuzz): $(TARGETS_libqpdf) $(OBJ_DEFAULT_FUZZ)
  22 +
  23 +# -----
  24 +
  25 +$(foreach B,$(FUZZERS),$(eval \
  26 + OBJS_$(B) = $(call src_to_obj,fuzz/$(B).cc)))
  27 +
  28 +ifeq ($(GENDEPS),1)
  29 +-include $(foreach B,$(FUZZERS),$(call obj_to_dep,$(OBJS_$(B))))
  30 +endif
  31 +
  32 +$(foreach B,$(DEFAULT_FUZZ_RUNNER),$(eval \
  33 + fuzz/$(OUTPUT_DIR)/%.$(OBJ): fuzz/$(B).cc ; \
  34 + $(call compile,fuzz/$(B).cc,$(INCLUDES_fuzz))))
  35 +
  36 +$(foreach B,$(FUZZERS),$(eval \
  37 + $(OBJS_$(B)): fuzz/$(OUTPUT_DIR)/%.$(OBJ): fuzz/$(B).cc ; \
  38 + $(call compile,fuzz/$(B).cc,$(INCLUDES_fuzz))))
  39 +
  40 +ifeq ($(suffix $(LIB_FUZZING_ENGINE)),.$(OBJ))
  41 + FUZZ_as_obj := $(LIB_FUZZING_ENGINE)
  42 + FUZZ_as_lib :=
  43 +else
  44 + FUZZ_as_obj :=
  45 + FUZZ_as_lib := $(LIB_FUZZING_ENGINE)
  46 +endif
  47 +
  48 +$(foreach B,$(FUZZERS),$(eval \
  49 + fuzz/$(OUTPUT_DIR)/$(call binname,$(B)): $(OBJS_$(B)) ; \
  50 + $(call makebin,$(OBJS_$(B)) $(FUZZ_as_obj),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(FUZZ_as_lib) $(LIBS_libqpdf) $(LIBS))))
  51 +
  52 +ifeq ($(OSS_FUZZ),1)
  53 +
  54 +# Build fuzzers linked with static libraries and installed into a
  55 +# location provided by oss-fuzz. This is specifically to support the
  56 +# oss-fuzz project. These rules won't on systems that don't allow main
  57 +# to be in a library or don't name their libraries libsomething.a.
  58 +
  59 +STATIC_BINS_fuzz := $(foreach B,$(FUZZERS),fuzz/$(OUTPUT_DIR)/static/$(call binname,$(B)))
  60 +$(STATIC_BINS_fuzz): $(TARGETS_libqpdf) $(OBJ_DEFAULT_FUZZ)
  61 +
  62 +# OUT is provided in the oss-fuzz environment
  63 +OUT ?= $(CURDIR)/fuzz/$(OUTPUT_DIR)/fuzz-install
  64 +
  65 +# These are not fully static, but they statically link with qpdf and
  66 +# our external dependencies other than system libraries.
  67 +$(foreach B,$(FUZZERS),$(eval \
  68 + fuzz/$(OUTPUT_DIR)/static/$(call binname,$(B)): $(OBJS_$(B)) ; \
  69 + $(call makebin,$(OBJS_$(B)),$$@,$(LDFLAGS_libqpdf) $(LDFLAGS),$(LIB_FUZZING_ENGINE) $(patsubst -l%,-l:lib%.a,$(LIBS_libqpdf) $(LIBS)))))
  70 +
  71 +# The install_fuzz target is used by build.sh in oss-fuzz's qpdf project.
  72 +install_fuzz: $(STATIC_BINS_fuzz)
  73 + mkdir -p $(OUT)
  74 + cp fuzz/pdf.dict $(STATIC_BINS_fuzz) $(OUT)/
  75 + for B in $(FUZZERS); do \
  76 + cp fuzz/options $(OUT)/$${B}.options; \
  77 + if test -d fuzz/$${B}_seed_corpus; then \
  78 + (cd fuzz/$${B}_seed_corpus; zip -q -r $(OUT)/$${B}_seed_corpus.zip .); \
  79 + fi; \
  80 + done
  81 +
  82 +endif # OSS_FUZZ
fuzz/options 0 → 100644
  1 +[libfuzzer]
  2 +dict = pdf.dict
fuzz/oss-fuzz-build 0 → 100755
  1 +#!/bin/bash -e
  2 +
  3 +# This is used invoked from
  4 +# https://github.com/google/oss-fuzz/blob/master/projects/qpdf/build.sh
  5 +
  6 +# It should be run from the top level directory of a clean checkout of
  7 +# qpdf. It is also exercised in ../azure-pipelines/build-fuzzer
  8 +
  9 +./configure \
  10 + --enable-oss-fuzz \
  11 + --enable-static \
  12 + --disable-shared \
  13 + --prefix="$WORK" \
  14 + LDFLAGS="-L$WORK/lib" \
  15 + CPPFLAGS="-I$WORK/include" \
  16 + LIBS="-pthread"
  17 +make -j$(nproc) install
  18 +make install_fuzz
fuzz/pdf.dict 0 → 100644
  1 +#
  2 +# AFL dictionary for PDF
  3 +# ----------------------
  4 +#
  5 +# This is a pretty big PDF dictionary constructed by Ben by manually reviewing
  6 +# the spec and combining that with the data pulled out of a corpus of sample
  7 +# PDFs.
  8 +#
  9 +# Contributed by Ben Nagy <ben@iagu.net>
  10 +#
  11 +
  12 +"#"
  13 +"%"
  14 +"%%"
  15 +"%%EOF"
  16 +"%FDF-1.7"
  17 +"%PDF-1.7"
  18 +"("
  19 +"(/xdp:xdp)"
  20 +"(\\001)"
  21 +"(config)"
  22 +"(datasets)"
  23 +"(template)"
  24 +"(xdp:xdp)"
  25 +")"
  26 +"-1"
  27 +"-1.0"
  28 +".."
  29 +"/"
  30 +"/#23clipboard"
  31 +"/.notdef"
  32 +"/1"
  33 +"/1.0"
  34 +"/1.3"
  35 +"/3D"
  36 +"/3DA"
  37 +"/3DAnimationStyle"
  38 +"/3DB"
  39 +"/3DD"
  40 +"/3DI"
  41 +"/3DLightingScheme"
  42 +"/3DRenderMode"
  43 +"/3DV"
  44 +"/3DView"
  45 +"/90pv-RKSJ-H"
  46 +"/A"
  47 +"/A0"
  48 +"/A85"
  49 +"/AA"
  50 +"/AAIC"
  51 +"/AAPL"
  52 +"/ABCDEF+ACaslonPro-Regular"
  53 +"/ABCDEF+AJensonPro-LtIt"
  54 +"/ABCDEF+AdobeCorpID-MinionRg"
  55 +"/ABCDEF+Arial,Bold"
  56 +"/ABCDEF+BankGothicMdBT"
  57 +"/ABCDEF+Bauhaus-Heavy"
  58 +"/ABCDEF+BluesClues"
  59 +"/ABCDEF+BodegaSans"
  60 +"/ABCDEF+BodoniMTCondensed"
  61 +"/ABCDEF+BookAntiqua"
  62 +"/ABCDEF+CMBX10"
  63 +"/ABCDEF+CaflischScriptPro-Regular"
  64 +"/ABCDEF+CityBlueprint"
  65 +"/ABCDEF+CourierNewPSMT"
  66 +"/ABCDEF+FixedsysExcelsior2.00"
  67 +"/ABCDEF+MSTT31854bd45bo188067S00"
  68 +"/ABCDEF+MinionPro-BoldCnIt"
  69 +"/ABCDEF+MyriadMM-It_400_300_"
  70 +"/ABCDEF+Wingdings"
  71 +"/ABCDEF+ZapfDingbats"
  72 +"/AC"
  73 +"/ADBE"
  74 +"/ADB_DEVICE_DEFAULT_STYLE"
  75 +"/ADB_DefaultStyle"
  76 +"/ADB_NO_TRAP_STYLE"
  77 +"/AE"
  78 +"/AESV2"
  79 +"/AGaramond"
  80 +"/AH"
  81 +"/AI8DstIndex"
  82 +"/AI8SrcIndex"
  83 +"/AIMetaData"
  84 +"/AIPDFPrivateData1"
  85 +"/AIS"
  86 +"/AL"
  87 +"/AN"
  88 +"/AP"
  89 +"/AS"
  90 +"/ASCII85Decode"
  91 +"/ASCIIHexDecode"
  92 +"/ASomewhatLongerName"
  93 +"/AU"
  94 +"/Aacute"
  95 +"/Acc.#20Prod.#202501#20#2F2#20#20"
  96 +"/Accounts#20payable"
  97 +"/AccurateScreens"
  98 +"/Acircumflex"
  99 +"/AcroForm"
  100 +"/Action"
  101 +"/Actual"
  102 +"/Add"
  103 +"/Adieresis"
  104 +"/Adobe"
  105 +"/Adobe#20PDF#20Library"
  106 +"/Adobe.PPKLite"
  107 +"/AdobeCorpID-Acrobat"
  108 +"/AdobeCorpID-MinionRg"
  109 +"/AdobePhotoshop"
  110 +"/Agrave"
  111 +"/All"
  112 +"/AllKO"
  113 +"/AllOn"
  114 +"/Alt"
  115 +"/Alternate"
  116 +"/AlternatePresentations"
  117 +"/Alternates"
  118 +"/Amex"
  119 +"/And"
  120 +"/Angle"
  121 +"/Annot"
  122 +"/Annots"
  123 +"/AntiAlias"
  124 +"/AnyOn"
  125 +"/Apag_PDFX_Checkup"
  126 +"/App"
  127 +"/Architecture-Normal"
  128 +"/Arial"
  129 +"/Aring"
  130 +"/Art"
  131 +"/ArtBox"
  132 +"/Article"
  133 +"/Artifact"
  134 +"/Artwork"
  135 +"/Ascent"
  136 +"/Aspect"
  137 +"/Assistant"
  138 +"/Atilde"
  139 +"/AuthEvent"
  140 +"/Author"
  141 +"/Avenir-Heavy"
  142 +"/Avenir-MediumOblique"
  143 +"/AvgWidth"
  144 +"/BBox"
  145 +"/BC"
  146 +"/BCL"
  147 +"/BDC"
  148 +"/BDL"
  149 +"/BE"
  150 +"/BFSOL"
  151 +"/BG"
  152 +"/BG2"
  153 +"/BM"
  154 +"/BMC"
  155 +"/BS"
  156 +"/BW"
  157 +"/Bank"
  158 +"/BaseEncoding"
  159 +"/BaseFont"
  160 +"/BaseState"
  161 +"/BaseVersion"
  162 +"/Birch"
  163 +"/BitsPerComponent"
  164 +"/BitsPerCoordinate"
  165 +"/BitsPerFlag"
  166 +"/BitsPerSample"
  167 +"/Bl"
  168 +"/BlCDel"
  169 +"/BlMiNu"
  170 +"/Black"
  171 +"/BlackIs1"
  172 +"/BlackOP"
  173 +"/BlackPoint"
  174 +"/BleedBox"
  175 +"/Blend"
  176 +"/Block"
  177 +"/Blue"
  178 +"/BluesClues"
  179 +"/Bookshelf"
  180 +"/Border"
  181 +"/Bounds"
  182 +"/BoxColorInfo"
  183 +"/Btn"
  184 +"/BulmerMT-BoldDisplay"
  185 +"/ByteRange"
  186 +"/C"
  187 +"/C0"
  188 +"/C0_0"
  189 +"/C1"
  190 +"/C2W"
  191 +"/C3"
  192 +"/CALS_AIS"
  193 +"/CALS_BM"
  194 +"/CALS_HT"
  195 +"/CALS_SMASK"
  196 +"/CALS_ca"
  197 +"/CAM"
  198 +"/CB"
  199 +"/CC"
  200 +"/CCH"
  201 +"/CCITTFaxDecode"
  202 +"/CD"
  203 +"/CDL"
  204 +"/CEN"
  205 +"/CF"
  206 +"/CFM"
  207 +"/CI"
  208 +"/CIDFontType0"
  209 +"/CIDFontType0C"
  210 +"/CIDFontType2"
  211 +"/CIDInit"
  212 +"/CIDSet"
  213 +"/CIDSystemInfo"
  214 +"/CIDToGIDMap"
  215 +"/CMV_LabBar"
  216 +"/CMV_LabControl"
  217 +"/CMYK"
  218 +"/CMYK#20#2880,#208,#2034,#200#29"
  219 +"/CMap"
  220 +"/CMapName"
  221 +"/CMapType"
  222 +"/CMapVersion"
  223 +"/CO"
  224 +"/CP"
  225 +"/CS"
  226 +"/CS0"
  227 +"/CT"
  228 +"/CV"
  229 +"/CalGray"
  230 +"/CalRGB"
  231 +"/CapHeight"
  232 +"/Caption"
  233 +"/Caslon540BT-Roman"
  234 +"/CaslonBT-Bold"
  235 +"/CaslonBT-BoldItalic"
  236 +"/Catalog"
  237 +"/Category"
  238 +"/Ccedilla"
  239 +"/CenturySchoolbookBT-Roman"
  240 +"/Ch"
  241 +"/Chair"
  242 +"/Chap"
  243 +"/Chaparral-Display"
  244 +"/CharProcs"
  245 +"/CharSet"
  246 +"/CheckSum"
  247 +"/Circle"
  248 +"/ClarendonBT-Black"
  249 +"/ClassMap"
  250 +"/Clearface-Black"
  251 +"/Clip"
  252 +"/ClippedText"
  253 +"/Cn"
  254 +"/Collection"
  255 +"/CollectionItem"
  256 +"/CollectionSchema"
  257 +"/CollectionSubitem"
  258 +"/Color"
  259 +"/ColorBurn"
  260 +"/ColorDodge"
  261 +"/ColorMatch"
  262 +"/ColorSpace"
  263 +"/ColorTransform"
  264 +"/ColorType"
  265 +"/Colorants"
  266 +"/Colors"
  267 +"/Columns"
  268 +"/ComicSansMS,Bold"
  269 +"/Comment"
  270 +"/Comments"
  271 +"/Company"
  272 +"/Compatibility"
  273 +"/Compatible"
  274 +"/Components"
  275 +"/CompressArt"
  276 +"/Condensed"
  277 +"/Configs"
  278 +"/Consultant"
  279 +"/ContainerVersion"
  280 +"/Contents"
  281 +"/Coords"
  282 +"/Copy"
  283 +"/Copy#20center"
  284 +"/Cor"
  285 +"/Corner#20surface"
  286 +"/CosineDot"
  287 +"/Count"
  288 +"/Cour"
  289 +"/Courier"
  290 +"/Create"
  291 +"/CreationDate"
  292 +"/Creator"
  293 +"/CreatorInfo"
  294 +"/CreatorVersion"
  295 +"/CropBox"
  296 +"/CropFixed"
  297 +"/CropRect"
  298 +"/Crypt"
  299 +"/CryptFilter"
  300 +"/CryptFilterDecodeParms"
  301 +"/Cs12"
  302 +"/Cs3"
  303 +"/Cyan"
  304 +"/D"
  305 +"/DA"
  306 +"/DCTDecode"
  307 +"/DIC#202525p*"
  308 +"/DIS"
  309 +"/DL"
  310 +"/DOS"
  311 +"/DP"
  312 +"/DR"
  313 +"/DS"
  314 +"/DSz"
  315 +"/DV"
  316 +"/DW"
  317 +"/DamagedRowsBeforeError"
  318 +"/Darken"
  319 +"/Data"
  320 +"/Date"
  321 +"/Decode"
  322 +"/DecodeParms"
  323 +"/DefEmbeddedFile"
  324 +"/Default"
  325 +"/DefaultCryptFilter"
  326 +"/DefaultForPrinting"
  327 +"/DefaultRGB"
  328 +"/Delete"
  329 +"/Delta"
  330 +"/DescendantFonts"
  331 +"/Descent"
  332 +"/Description"
  333 +"/Design"
  334 +"/Dest"
  335 +"/DestOutputProfile"
  336 +"/DestOutputProfileRef"
  337 +"/Dests"
  338 +"/DeviceCMYK"
  339 +"/DeviceGray"
  340 +"/DeviceN"
  341 +"/DeviceRGB"
  342 +"/Difference"
  343 +"/Differences"
  344 +"/DigestLocation"
  345 +"/DigestMethod"
  346 +"/DigestValue"
  347 +"/Dimmed"
  348 +"/Direction"
  349 +"/DisplayDocTitle"
  350 +"/Dissolve"
  351 +"/Div"
  352 +"/Dm"
  353 +"/DocMDP"
  354 +"/DocOpen"
  355 +"/Document"
  356 +"/Documents"
  357 +"/Domain"
  358 +"/Door"
  359 +"/DotGain"
  360 +"/Draw"
  361 +"/Dt"
  362 +"/Dur"
  363 +"/Dynamic#20connector"
  364 +"/E"
  365 +"/EF"
  366 +"/EFF"
  367 +"/EMC"
  368 +"/Eacute"
  369 +"/EarlyChange"
  370 +"/Ecircumflex"
  371 +"/Edieresis"
  372 +"/Editable"
  373 +"/Egrave"
  374 +"/EmbedFonts"
  375 +"/EmbedICCProfile"
  376 +"/Embedded"
  377 +"/EmbeddedFile"
  378 +"/EmbeddedFiles"
  379 +"/Encode"
  380 +"/EncodedByteAlign"
  381 +"/Encoding"
  382 +"/Encrypt"
  383 +"/EncryptMetadata"
  384 +"/EndIndent"
  385 +"/EndOfBlock"
  386 +"/EndOfLine"
  387 +"/Euro"
  388 +"/Euro.037"
  389 +"/Event"
  390 +"/ExData"
  391 +"/Exchange-Pro"
  392 +"/Exclude"
  393 +"/Exclusion"
  394 +"/Executive"
  395 +"/Export"
  396 +"/ExportCrispy"
  397 +"/ExportState"
  398 +"/ExtGState"
  399 +"/Extend"
  400 +"/Extends"
  401 +"/ExtensionLevel"
  402 +"/Extensions"
  403 +"/F1"
  404 +"/F1.0"
  405 +"/F12"
  406 +"/F13"
  407 +"/F3"
  408 +"/F5"
  409 +"/F6"
  410 +"/F7"
  411 +"/F8"
  412 +"/FB"
  413 +"/FD"
  414 +"/FDecodeParms"
  415 +"/FFilter"
  416 +"/FICL"
  417 +"/FM"
  418 +"/FOV"
  419 +"/FRM"
  420 +"/FS"
  421 +"/FT"
  422 +"/Facilities"
  423 +"/Fade"
  424 +"/False"
  425 +"/Feature"
  426 +"/FedEx#20Orange"
  427 +"/FedEx#20Purple"
  428 +"/Field"
  429 +"/Fields"
  430 +"/Figure"
  431 +"/File"
  432 +"/Files"
  433 +"/Filespec"
  434 +"/FillIn"
  435 +"/Filter"
  436 +"/First"
  437 +"/FirstChar"
  438 +"/FirstPage"
  439 +"/Fit"
  440 +"/FitB"
  441 +"/FitBH"
  442 +"/FitBV"
  443 +"/FitH"
  444 +"/FitR"
  445 +"/FitV"
  446 +"/FitWindow"
  447 +"/FixedPrint"
  448 +"/Flags"
  449 +"/FlateDecode"
  450 +"/Fm0"
  451 +"/Fm4"
  452 +"/Fo"
  453 +"/Focoltone#201047"
  454 +"/Font"
  455 +"/FontBBox"
  456 +"/FontDescriptor"
  457 +"/FontFamily"
  458 +"/FontFile"
  459 +"/FontFile2"
  460 +"/FontMatrix"
  461 +"/FontName"
  462 +"/FontStretch"
  463 +"/FontWeight"
  464 +"/Form"
  465 +"/FormEx"
  466 +"/FormType"
  467 +"/FreeText"
  468 +"/FreeTextCallout"
  469 +"/Frequency"
  470 +"/FullSave"
  471 +"/FullScreen"
  472 +"/Function"
  473 +"/FunctionType"
  474 +"/Functions"
  475 +"/Futura-Bold"
  476 +"/Futura-CondensedExtraBold"
  477 +"/G"
  478 +"/G02"
  479 +"/GLGR"
  480 +"/GS0"
  481 +"/GS1"
  482 +"/GS2"
  483 +"/GTS"
  484 +"/GTS_PDFA1"
  485 +"/GTS_PDFX"
  486 +"/GTS_PDFXConformance"
  487 +"/GTS_PDFXVersion"
  488 +"/GWG#20Green"
  489 +"/Gamma"
  490 +"/Garamond"
  491 +"/Georgia,Bold"
  492 +"/GoTo"
  493 +"/GoTo3DView"
  494 +"/GoToE"
  495 +"/GoToR"
  496 +"/Gold"
  497 +"/Goudy"
  498 +"/Gray"
  499 +"/Green"
  500 +"/GreymantleMVB"
  501 +"/GrotesqueMT"
  502 +"/Group"
  503 +"/H"
  504 +"/HDAG_Tools"
  505 +"/HKana"
  506 +"/HT"
  507 +"/HT2"
  508 +"/Halftone"
  509 +"/HalftoneName"
  510 +"/HalftoneType"
  511 +"/HardLight"
  512 +"/HeBo"
  513 +"/Head1"
  514 +"/Headlamp"
  515 +"/Height"
  516 +"/HeiseiMin"
  517 +"/Helv"
  518 +"/Helvetica"
  519 +"/Helvetica-Bold"
  520 +"/Helvetica-BoldOblique"
  521 +"/Helvetica-Condensed"
  522 +"/HelveticaNeue-Black"
  523 +"/Hide"
  524 +"/HonMincho-M"
  525 +"/Horizontal"
  526 +"/Hue"
  527 +"/I"
  528 +"/I0"
  529 +"/IC"
  530 +"/ICCBased"
  531 +"/ICCVersion"
  532 +"/ID"
  533 +"/IDS"
  534 +"/IDTree"
  535 +"/IEC"
  536 +"/IF"
  537 +"/IN"
  538 +"/ISO32000Registry"
  539 +"/ISO_PDFE1"
  540 +"/ISO_PDFEVersion"
  541 +"/IT"
  542 +"/ITO"
  543 +"/ITP"
  544 +"/IV"
  545 +"/IX"
  546 +"/Icircumflex"
  547 +"/Icon"
  548 +"/Identity"
  549 +"/Identity-H"
  550 +"/IgnEP"
  551 +"/Illustrator"
  552 +"/Illustrator8.0"
  553 +"/Im0"
  554 +"/Im1"
  555 +"/Im2"
  556 +"/Im3"
  557 +"/Im4"
  558 +"/Image"
  559 +"/Image1"
  560 +"/ImageB"
  561 +"/ImageC"
  562 +"/ImageI"
  563 +"/ImageMask"
  564 +"/ImageResources"
  565 +"/ImageType"
  566 +"/Import"
  567 +"/ImportData"
  568 +"/ImpressBT-Regular"
  569 +"/Index"
  570 +"/Indexed"
  571 +"/Info"
  572 +"/Information#20services"
  573 +"/Ink"
  574 +"/InkList"
  575 +"/InsertPages"
  576 +"/Insignia"
  577 +"/IntegerItem"
  578 +"/Intent"
  579 +"/Interpolate"
  580 +"/ItalicAngle"
  581 +"/ItcKabel-Ultra"
  582 +"/Item1"
  583 +"/Item2"
  584 +"/JBIG2Decode"
  585 +"/JBIG2Globals"
  586 +"/JPXDecode"
  587 +"/JS"
  588 +"/JT"
  589 +"/JTC"
  590 +"/JTF"
  591 +"/JTFile"
  592 +"/JTM"
  593 +"/JavaScript"
  594 +"/JobTicketContents"
  595 +"/Justify"
  596 +"/Keywords"
  597 +"/Kids"
  598 +"/L"
  599 +"/L1"
  600 +"/L1a"
  601 +"/L1b"
  602 +"/L2R"
  603 +"/L50188"
  604 +"/LBody"
  605 +"/LI"
  606 +"/LL"
  607 +"/LLE"
  608 +"/LLO"
  609 +"/LS"
  610 +"/LSP"
  611 +"/LZW"
  612 +"/LZWDecode"
  613 +"/Lab"
  614 +"/Lang"
  615 +"/Last"
  616 +"/LastChar"
  617 +"/LastItem"
  618 +"/LastModified"
  619 +"/Lateral#20file"
  620 +"/Launch"
  621 +"/Layout"
  622 +"/Lbl"
  623 +"/Leading"
  624 +"/Legal"
  625 +"/Length"
  626 +"/Length1"
  627 +"/Length2"
  628 +"/Length3"
  629 +"/LetterspaceFlags"
  630 +"/Lighten"
  631 +"/Limits"
  632 +"/Line"
  633 +"/LineDimension"
  634 +"/LineHeight"
  635 +"/Linear"
  636 +"/Linearized"
  637 +"/Link"
  638 +"/Locked"
  639 +"/LogoGreen"
  640 +"/LrTb"
  641 +"/Lslash"
  642 +"/Luminosity"
  643 +"/M"
  644 +"/MB"
  645 +"/MC"
  646 +"/MC0"
  647 +"/MCD"
  648 +"/MCID"
  649 +"/MCR"
  650 +"/MD5"
  651 +"/MH"
  652 +"/MIT"
  653 +"/MK"
  654 +"/MMType1"
  655 +"/MP"
  656 +"/MR"
  657 +"/MS"
  658 +"/MUX#20#2F#20DEMUX"
  659 +"/Mac"
  660 +"/MacRomanEncoding"
  661 +"/Magenta"
  662 +"/Manager"
  663 +"/MarkInfo"
  664 +"/Marked"
  665 +"/MarkedPDF"
  666 +"/Marker#20board"
  667 +"/Markup3D"
  668 +"/Mask"
  669 +"/Mastercard"
  670 +"/Matrix"
  671 +"/Max"
  672 +"/MaxLen"
  673 +"/MaxWidth"
  674 +"/Me"
  675 +"/Measure"
  676 +"/MediaBox"
  677 +"/MetaData"
  678 +"/Min"
  679 +"/MinionMM"
  680 +"/MissingWidth"
  681 +"/MixedContainer"
  682 +"/MixingHints"
  683 +"/ModDate"
  684 +"/Mode"
  685 +"/Modify"
  686 +"/Movie"
  687 +"/Msg"
  688 +"/MurrayHillBT-Bold"
  689 +"/MxGeom"
  690 +"/MxLaNu"
  691 +"/MxPts"
  692 +"/MyriadPro-Black"
  693 +"/NA"
  694 +"/NChannel"
  695 +"/ND"
  696 +"/NL"
  697 +"/NM"
  698 +"/NR"
  699 +"/Name"
  700 +"/Name1"
  701 +"/Named"
  702 +"/Names"
  703 +"/NeedsRendering"
  704 +"/NewCenturySchlbk-Italic"
  705 +"/NewWindow"
  706 +"/Next"
  707 +"/NextPage"
  708 +"/No"
  709 +"/NonEFontNoWarn"
  710 +"/NonStruct"
  711 +"/None"
  712 +"/Normal"
  713 +"/Not"
  714 +"/NotDefSpecial"
  715 +"/NumBlock"
  716 +"/Nums"
  717 +"/OB"
  718 +"/OBJR"
  719 +"/OC"
  720 +"/OC2"
  721 +"/OC3"
  722 +"/OC4"
  723 +"/OCG"
  724 +"/OCGs"
  725 +"/OCL"
  726 +"/OCMD"
  727 +"/OCProperties"
  728 +"/OE"
  729 +"/OFF"
  730 +"/OLN"
  731 +"/ON"
  732 +"/OOL"
  733 +"/OPBG"
  734 +"/OPBS"
  735 +"/OPI"
  736 +"/OPM"
  737 +"/OS"
  738 +"/OT"
  739 +"/Oacute"
  740 +"/Obj"
  741 +"/ObjStm"
  742 +"/Ocircumflex"
  743 +"/Odieresis"
  744 +"/Ograve"
  745 +"/Omega"
  746 +"/OneColumn"
  747 +"/Online"
  748 +"/Open"
  749 +"/OpenAction"
  750 +"/Operation"
  751 +"/Opt"
  752 +"/OptionSet"
  753 +"/Options"
  754 +"/Or"
  755 +"/Orange"
  756 +"/Order"
  757 +"/Ordering"
  758 +"/OriginalLayerName"
  759 +"/Oslash"
  760 +"/Otilde"
  761 +"/Outlines"
  762 +"/OutputCondition"
  763 +"/OutputConditionIdentifier"
  764 +"/OutputIntent"
  765 +"/OutputIntents"
  766 +"/Overlay"
  767 +"/P0"
  768 +"/P1"
  769 +"/P2"
  770 +"/P2,#2300ff007900000000,PANTONE#20151#20C"
  771 +"/PANTONE"
  772 +"/PANTONE#20158-5#20CVS"
  773 +"/PANTONE#20221#20CVU"
  774 +"/PANTONE#203405#20C"
  775 +"/PANTONE#20399#20CVC"
  776 +"/PANTONE#20Blue#20072#20C"
  777 +"/PANTONE#20Orange#20021#20C"
  778 +"/PANTONE#20Orange#20021#20CVC"
  779 +"/PANTONE#20Yellow#20C"
  780 +"/PC"
  781 +"/PDFDocEncoding"
  782 +"/PIX"
  783 +"/PO"
  784 +"/PS"
  785 +"/PUBLISHER"
  786 +"/PZ"
  787 +"/Pa0"
  788 +"/Page"
  789 +"/PageElement"
  790 +"/PageLabels"
  791 +"/PageLayout"
  792 +"/PageMode"
  793 +"/PageRange"
  794 +"/Pages"
  795 +"/PaintType"
  796 +"/Palatino,Bold"
  797 +"/Pale#20Brown.c"
  798 +"/Panose"
  799 +"/Paper#20tray"
  800 +"/Para"
  801 +"/Params"
  802 +"/Parent"
  803 +"/ParentTree"
  804 +"/ParentTreeNextKey"
  805 +"/Part"
  806 +"/Pattern"
  807 +"/PatternType"
  808 +"/PcZ"
  809 +"/Perceptual"
  810 +"/Perms"
  811 +"/Pg"
  812 +"/Pgf"
  813 +"/PieceInfo"
  814 +"/PitStop"
  815 +"/Placement"
  816 +"/Play"
  817 +"/Polygon"
  818 +"/PolygonCloud"
  819 +"/Popup"
  820 +"/Position"
  821 +"/PowerUpPDF"
  822 +"/PrOut"
  823 +"/PrRGBGra"
  824 +"/PrRGBIma"
  825 +"/Predictor"
  826 +"/PresSteps"
  827 +"/PreserveRB"
  828 +"/Prev"
  829 +"/PrevPage"
  830 +"/Preview"
  831 +"/Print"
  832 +"/PrintRecord"
  833 +"/PrintScaling"
  834 +"/PrintState"
  835 +"/PrintStyle"
  836 +"/Printed"
  837 +"/PrintingOrder"
  838 +"/Private"
  839 +"/ProcSet"
  840 +"/Process"
  841 +"/ProcessBlue"
  842 +"/ProcessGreen"
  843 +"/ProcessRed"
  844 +"/Producer"
  845 +"/ProfileCS"
  846 +"/ProfileName"
  847 +"/Prop_Build"
  848 +"/Properties"
  849 +"/Proportional"
  850 +"/PubSec"
  851 +"/Q"
  852 +"/QuadPoints"
  853 +"/R1"
  854 +"/RBGroups"
  855 +"/RC"
  856 +"/RD"
  857 +"/REC"
  858 +"/REx"
  859 +"/RF"
  860 +"/RGB"
  861 +"/RI"
  862 +"/RICMYKGra"
  863 +"/RICMYKIma"
  864 +"/RICalGra"
  865 +"/RICalIma"
  866 +"/RIDefault"
  867 +"/RIDevNGra"
  868 +"/RIDevNIma"
  869 +"/RIRGBGra"
  870 +"/RIRGBIma"
  871 +"/RL"
  872 +"/RM"
  873 +"/RV"
  874 +"/Range"
  875 +"/Rect"
  876 +"/Red"
  877 +"/Redact"
  878 +"/Ref"
  879 +"/Reference"
  880 +"/Registry"
  881 +"/RegistryName"
  882 +"/RelativeColorimetric"
  883 +"/Rendition"
  884 +"/Renditions"
  885 +"/Requirements"
  886 +"/ResetForm"
  887 +"/Resolution"
  888 +"/Resources"
  889 +"/ReversedChars"
  890 +"/RoleMap"
  891 +"/Root"
  892 +"/Rotate"
  893 +"/Round"
  894 +"/RoundTrip"
  895 +"/RoundtripVersion"
  896 +"/Router"
  897 +"/Rows"
  898 +"/RunLengthDecode"
  899 +"/Ryumin"
  900 +"/SA"
  901 +"/SBDraft"
  902 +"/SC"
  903 +"/SE"
  904 +"/SFSSL"
  905 +"/SFTWS"
  906 +"/SI"
  907 +"/SL"
  908 +"/SLA"
  909 +"/SM"
  910 +"/SMask"
  911 +"/SMaskInData"
  912 +"/SP"
  913 +"/SPS"
  914 +"/STL"
  915 +"/SU"
  916 +"/SW"
  917 +"/Saturation"
  918 +"/SaveAs"
  919 +"/SaveContents"
  920 +"/SaveResource"
  921 +"/SavedBy"
  922 +"/Scaron"
  923 +"/Schema"
  924 +"/Screen"
  925 +"/Sect"
  926 +"/SemiCondensed"
  927 +"/SemiExpanded"
  928 +"/Separation"
  929 +"/SeparationInfo"
  930 +"/SetOCGState"
  931 +"/SettingsFileName"
  932 +"/Sh0"
  933 +"/Sh1"
  934 +"/Shading"
  935 +"/ShadingType"
  936 +"/Shape"
  937 +"/Sig"
  938 +"/SigFlags"
  939 +"/SigRef"
  940 +"/Signature"
  941 +"/Signed"
  942 +"/SinglePage"
  943 +"/Size"
  944 +"/SlideShow"
  945 +"/SoftLight"
  946 +"/Solid"
  947 +"/Solidities"
  948 +"/SomeName"
  949 +"/Sort"
  950 +"/Sound"
  951 +"/Space"
  952 +"/SpaceAfter"
  953 +"/SpaceBefore"
  954 +"/Span"
  955 +"/SpawnTemplate"
  956 +"/SpdrArt"
  957 +"/SpiderInfo"
  958 +"/Split"
  959 +"/Spot"
  960 +"/Spot1"
  961 +"/Spot2"
  962 +"/SpotFunction"
  963 +"/SpotMap"
  964 +"/St"
  965 +"/Stamp"
  966 +"/StandardImageFileData"
  967 +"/Star"
  968 +"/Start"
  969 +"/StartIndent"
  970 +"/StartResource"
  971 +"/State"
  972 +"/StdCF"
  973 +"/StemH"
  974 +"/StemV"
  975 +"/Stm"
  976 +"/StmF"
  977 +"/Stop"
  978 +"/Story"
  979 +"/StrF"
  980 +"/StrikeOut"
  981 +"/StringItem"
  982 +"/StructElem"
  983 +"/StructParent"
  984 +"/StructParents"
  985 +"/StructTreeRoot"
  986 +"/Style"
  987 +"/SubFilter"
  988 +"/SubType"
  989 +"/Subdictionary"
  990 +"/Subform"
  991 +"/Subj"
  992 +"/Subject"
  993 +"/SubmitForm"
  994 +"/SubmitStandalone"
  995 +"/SubsetFontsBelow"
  996 +"/SubsetFontsRatio"
  997 +"/Supplement"
  998 +"/Swiss721BT-Black"
  999 +"/Switch"
  1000 +"/T"
  1001 +"/T1"
  1002 +"/T1_0"
  1003 +"/TB"
  1004 +"/TC"
  1005 +"/TCS"
  1006 +"/TF"
  1007 +"/TID"
  1008 +"/TK"
  1009 +"/TM"
  1010 +"/TO"
  1011 +"/TOC"
  1012 +"/TOCI"
  1013 +"/TOYO#200004pc"
  1014 +"/TP"
  1015 +"/TR"
  1016 +"/TR2"
  1017 +"/TRUMATCH#206-e"
  1018 +"/TS"
  1019 +"/TSV"
  1020 +"/TT"
  1021 +"/TT0"
  1022 +"/TTRefMan"
  1023 +"/TU"
  1024 +"/TV"
  1025 +"/TW"
  1026 +"/TWS"
  1027 +"/TWY"
  1028 +"/Tabs"
  1029 +"/TagSuspect"
  1030 +"/TargetCS"
  1031 +"/Technical"
  1032 +"/Template"
  1033 +"/TemplateInstantiated"
  1034 +"/Templates"
  1035 +"/Text"
  1036 +"/TextAlign"
  1037 +"/TextBox"
  1038 +"/TextIndent"
  1039 +"/The"
  1040 +"/This"
  1041 +"/Thorn"
  1042 +"/Thread"
  1043 +"/Threads"
  1044 +"/Thumb"
  1045 +"/Thumbnail"
  1046 +"/Thumbs"
  1047 +"/Ti"
  1048 +"/TiBI"
  1049 +"/TilingType"
  1050 +"/Times-BoldItalic"
  1051 +"/Times-Roman"
  1052 +"/Title"
  1053 +"/ToUnicode"
  1054 +"/Toggle"
  1055 +"/Trans"
  1056 +"/TransferFunction"
  1057 +"/TransformMethod"
  1058 +"/TransformParams"
  1059 +"/Transparency"
  1060 +"/TrapInfo"
  1061 +"/TrapMagicNumber"
  1062 +"/TrapRegions"
  1063 +"/TrapSet"
  1064 +"/Trapped"
  1065 +"/Trapping"
  1066 +"/TrappingDetails"
  1067 +"/TrappingParameters"
  1068 +"/TrimBox"
  1069 +"/True"
  1070 +"/TrueType"
  1071 +"/TrustedMode"
  1072 +"/TwoColumnLeft"
  1073 +"/Tx"
  1074 +"/Type"
  1075 +"/Type0"
  1076 +"/U3D"
  1077 +"/UA"
  1078 +"/UCR"
  1079 +"/UCR2"
  1080 +"/UIDOffset"
  1081 +"/UR"
  1082 +"/UR3"
  1083 +"/URI"
  1084 +"/URL"
  1085 +"/URLs"
  1086 +"/Uacute"
  1087 +"/Ucircumflex"
  1088 +"/Udieresis"
  1089 +"/Ugrave"
  1090 +"/Univers-BoldExt"
  1091 +"/Unix"
  1092 +"/Unknown"
  1093 +"/Usage"
  1094 +"/UseAttachments"
  1095 +"/UseNone"
  1096 +"/UseOC"
  1097 +"/UseOutlines"
  1098 +"/UseThumbs"
  1099 +"/UsedCMYK"
  1100 +"/UserProperties"
  1101 +"/UserUnit"
  1102 +"/V2"
  1103 +"/VA"
  1104 +"/VE"
  1105 +"/VP"
  1106 +"/Verdana,Bold"
  1107 +"/Version"
  1108 +"/Vertical"
  1109 +"/VeryLastItem"
  1110 +"/View"
  1111 +"/ViewerPreferences"
  1112 +"/Visa"
  1113 +"/Visible"
  1114 +"/Volume"
  1115 +"/W2"
  1116 +"/WAI"
  1117 +"/WAN"
  1118 +"/WMode"
  1119 +"/WP"
  1120 +"/WarnockPro-BoldIt"
  1121 +"/Watermark"
  1122 +"/WebCapture"
  1123 +"/Which"
  1124 +"/WhiteBG"
  1125 +"/WhitePoint"
  1126 +"/Widget"
  1127 +"/Width"
  1128 +"/Widths"
  1129 +"/Win"
  1130 +"/WinAnsiEncoding"
  1131 +"/Window"
  1132 +"/Windows"
  1133 +"/Work#20surface"
  1134 +"/Workbook"
  1135 +"/Worksheet"
  1136 +"/WritingMode"
  1137 +"/X"
  1138 +"/X1"
  1139 +"/XFA"
  1140 +"/XHeight"
  1141 +"/XML"
  1142 +"/XN"
  1143 +"/XObject"
  1144 +"/XRef"
  1145 +"/XRefStm"
  1146 +"/XStep"
  1147 +"/XUID"
  1148 +"/XYZ"
  1149 +"/Y"
  1150 +"/YStep"
  1151 +"/Yacute"
  1152 +"/Ydieresis"
  1153 +"/Yellow"
  1154 +"/Z"
  1155 +"/Z7KNXbN"
  1156 +"/ZaDb"
  1157 +"/ZapfDingbats"
  1158 +"/Zcaron"
  1159 +"/Zoom"
  1160 +"/_No_paragraph_style_"
  1161 +"/a1"
  1162 +"/acute"
  1163 +"/adbe.pkcs7.detached"
  1164 +"/ampersand"
  1165 +"/apple"
  1166 +"/approxequal"
  1167 +"/asciicircum"
  1168 +"/asciitilde"
  1169 +"/asterisk"
  1170 +"/at"
  1171 +"/audio#2Fmpeg"
  1172 +"/b"
  1173 +"/backslash"
  1174 +"/bar"
  1175 +"/blank"
  1176 +"/braceleft"
  1177 +"/braceright"
  1178 +"/bracketleft"
  1179 +"/bracketright"
  1180 +"/breve"
  1181 +"/brokenbar"
  1182 +"/bullet"
  1183 +"/c108"
  1184 +"/cCompKind"
  1185 +"/cCompQuality"
  1186 +"/cCompression"
  1187 +"/cRes"
  1188 +"/cResolution"
  1189 +"/ca"
  1190 +"/caron"
  1191 +"/cedilla"
  1192 +"/cent"
  1193 +"/circumflex"
  1194 +"/colon"
  1195 +"/comma"
  1196 +"/copyright"
  1197 +"/currency"
  1198 +"/dagger"
  1199 +"/daggerdbl"
  1200 +"/degree"
  1201 +"/deviceNumber"
  1202 +"/dieresis"
  1203 +"/divide"
  1204 +"/dollar"
  1205 +"/dotaccent"
  1206 +"/dotlessi"
  1207 +"/dotlessj"
  1208 +"/eight"
  1209 +"/ellipsis"
  1210 +"/emdash"
  1211 +"/endash"
  1212 +"/equal"
  1213 +"/eth"
  1214 +"/exclam"
  1215 +"/exclamdown"
  1216 +"/f"
  1217 +"/ff"
  1218 +"/ffi"
  1219 +"/ffl"
  1220 +"/fi"
  1221 +"/five"
  1222 +"/fl"
  1223 +"/florin"
  1224 +"/four"
  1225 +"/fraction"
  1226 +"/gCompKind"
  1227 +"/gCompQuality"
  1228 +"/gCompression"
  1229 +"/gRes"
  1230 +"/gResolution"
  1231 +"/germandbls"
  1232 +"/go1"
  1233 +"/grave"
  1234 +"/greater"
  1235 +"/greaterequal"
  1236 +"/guillemotleft"
  1237 +"/guillemotright"
  1238 +"/guilsinglleft"
  1239 +"/guilsinglright"
  1240 +"/hungarumlaut"
  1241 +"/hyphen"
  1242 +"/iacute"
  1243 +"/idieresis"
  1244 +"/igrave"
  1245 +"/infinity"
  1246 +"/integral"
  1247 +"/j"
  1248 +"/k"
  1249 +"/less"
  1250 +"/lessequal"
  1251 +"/logicalnot"
  1252 +"/lozenge"
  1253 +"/lt#20blue"
  1254 +"/mCompKind"
  1255 +"/mCompression"
  1256 +"/mRes"
  1257 +"/mResolution"
  1258 +"/macron"
  1259 +"/minus"
  1260 +"/mu"
  1261 +"/multiply"
  1262 +"/n"
  1263 +"/n0"
  1264 +"/nine"
  1265 +"/notequal"
  1266 +"/ntilde"
  1267 +"/numbersign"
  1268 +"/o"
  1269 +"/ogonek"
  1270 +"/one"
  1271 +"/onehalf"
  1272 +"/onequarter"
  1273 +"/onesuperior"
  1274 +"/op"
  1275 +"/ordfeminine"
  1276 +"/ordmasculine"
  1277 +"/p"
  1278 +"/pageH"
  1279 +"/pageV"
  1280 +"/paragraph"
  1281 +"/parenleft"
  1282 +"/parenright"
  1283 +"/partialdiff"
  1284 +"/pdf"
  1285 +"/pdfx"
  1286 +"/percent"
  1287 +"/period"
  1288 +"/periodcentered"
  1289 +"/perthousand"
  1290 +"/pi"
  1291 +"/plus"
  1292 +"/plusminus"
  1293 +"/pms#208400"
  1294 +"/printX"
  1295 +"/product"
  1296 +"/question"
  1297 +"/questiondown"
  1298 +"/quotedbl"
  1299 +"/quotedblbase"
  1300 +"/quotedblleft"
  1301 +"/quotedblright"
  1302 +"/quoteleft"
  1303 +"/quoteright"
  1304 +"/quotesinglbase"
  1305 +"/quotesingle"
  1306 +"/r"
  1307 +"/radical"
  1308 +"/registered"
  1309 +"/ring"
  1310 +"/s"
  1311 +"/s1"
  1312 +"/sd1"
  1313 +"/sd2"
  1314 +"/section"
  1315 +"/semicolon"
  1316 +"/seven"
  1317 +"/six"
  1318 +"/slash"
  1319 +"/sterling"
  1320 +"/summation"
  1321 +"/thinspace"
  1322 +"/three"
  1323 +"/threequarters"
  1324 +"/threesuperior"
  1325 +"/tilde"
  1326 +"/trademark"
  1327 +"/two"
  1328 +"/twosuperior"
  1329 +"/u"
  1330 +"/underscore"
  1331 +"/v"
  1332 +"/w"
  1333 +"/y1"
  1334 +"/yen"
  1335 +"/yes"
  1336 +"/zero"
  1337 +"0 R"
  1338 +"1"
  1339 +"1.0"
  1340 +"<"
  1341 +"<<"
  1342 +">"
  1343 +">>"
  1344 +"Adobe.PPKLite"
  1345 +"Adobe.PubSec"
  1346 +"B*"
  1347 +"BDC"
  1348 +"BI"
  1349 +"BMC"
  1350 +"BT"
  1351 +"BX"
  1352 +"CS"
  1353 +"DP"
  1354 +"Do"
  1355 +"EI"
  1356 +"EMC"
  1357 +"ET"
  1358 +"EX"
  1359 +"Entrust.PPKEF"
  1360 +"ID"
  1361 +"MP"
  1362 +"R"
  1363 +"T*"
  1364 +"TJ"
  1365 +"TL"
  1366 +"Tc"
  1367 +"Td"
  1368 +"Tf"
  1369 +"Tj"
  1370 +"Tm"
  1371 +"Tr"
  1372 +"Ts"
  1373 +"Tw"
  1374 +"W*"
  1375 +"["
  1376 +"[0.0 0.0 0.0 0.0 0.0 0.0]"
  1377 +"[1 1 1]"
  1378 +"[1.0 -1.0 1.0 -1.0]"
  1379 +"[1.0 -1.0]"
  1380 +"\\"
  1381 +"]"
  1382 +"abs"
  1383 +"adbe.pkcs7.s3"
  1384 +"adbe.pkcs7.s4"
  1385 +"adbe.pkcs7.s5"
  1386 +"add"
  1387 +"and"
  1388 +"atan"
  1389 +"begin"
  1390 +"beginarrangedfont"
  1391 +"beginbfchar"
  1392 +"begincidrange"
  1393 +"begincmap"
  1394 +"begincodespacerange"
  1395 +"beginnotdefchar"
  1396 +"beginnotdefrange"
  1397 +"beginusematrix"
  1398 +"bitshift"
  1399 +"ceiling"
  1400 +"cm"
  1401 +"copy"
  1402 +"cos"
  1403 +"cvi"
  1404 +"cvr"
  1405 +"d0"
  1406 +"d1"
  1407 +"div"
  1408 +"dup"
  1409 +"end"
  1410 +"endarrangedfont"
  1411 +"endbfchar"
  1412 +"endcidrange"
  1413 +"endcmap"
  1414 +"endcodespacerange"
  1415 +"endnotdefchar"
  1416 +"endnotdefrange"
  1417 +"endobj"
  1418 +"endstream"
  1419 +"endusematrix"
  1420 +"eq"
  1421 +"exch"
  1422 +"exp"
  1423 +"f*"
  1424 +"false"
  1425 +"findresource"
  1426 +"floor"
  1427 +"ge"
  1428 +"gs"
  1429 +"gt"
  1430 +"idiv"
  1431 +"if"
  1432 +"ifelse"
  1433 +"index"
  1434 +"le"
  1435 +"ln"
  1436 +"log"
  1437 +"lt"
  1438 +"mod"
  1439 +"mul"
  1440 +"ne"
  1441 +"neg"
  1442 +"not"
  1443 +"null"
  1444 +"obj"
  1445 +"or"
  1446 +"page"
  1447 +"pop"
  1448 +"re"
  1449 +"rg"
  1450 +"ri"
  1451 +"roll"
  1452 +"round"
  1453 +"sin"
  1454 +"sqrt"
  1455 +"startxref"
  1456 +"stream"
  1457 +"sub"
  1458 +"trailer"
  1459 +"true"
  1460 +"truncate"
  1461 +"usecmap"
  1462 +"usefont"
  1463 +"xor"
  1464 +"xref"
  1465 +"{"
  1466 +"}"
fuzz/qpdf_read_memory_fuzzer.cc 0 → 100644
  1 +#include "qpdf/qpdf-c.h"
  2 +
  3 +#include <algorithm>
  4 +#include <cstddef>
  5 +#include <cstdlib>
  6 +
  7 +extern "C" int LLVMFuzzerTestOneInput(const unsigned char* data, size_t size) {
  8 + const size_t kMaxSize = 64 * 1024; // 64 KiB
  9 + size = std::min(size, kMaxSize);
  10 + _qpdf_data* qpdf = qpdf_init();
  11 + const char* buffer = reinterpret_cast<const char*>(data);
  12 + qpdf_read_memory(qpdf, /*description=*/"", buffer, size, /*password=*/"");
  13 + qpdf_cleanup(&qpdf);
  14 + return 0;
  15 +}
fuzz/standalone_fuzz_target_runner.cc 0 → 100644
  1 +// Copyright 2017 Google Inc. All Rights Reserved.
  2 +// Licensed under the Apache License, Version 2.0 (the "License");
  3 +
  4 +// Except for formatting, comments, and portability, this was copied
  5 +// from projects/example/my-api-repo/standalone_fuzz_target_runner.cpp
  6 +// in https://github.com/oss-fuzz
  7 +
  8 +#include <cassert>
  9 +#include <iostream>
  10 +#include <fstream>
  11 +#include <vector>
  12 +
  13 +extern "C" int LLVMFuzzerTestOneInput(unsigned char const* data, size_t size);
  14 +
  15 +int main(int argc, char **argv)
  16 +{
  17 + for (int i = 1; i < argc; i++)
  18 + {
  19 + std::ifstream in(argv[i]);
  20 + in.seekg(0, in.end);
  21 + size_t length = in.tellg();
  22 + in.seekg (0, in.beg);
  23 + std::cout << "Reading " << length << " bytes from " << argv[i]
  24 + << std::endl;
  25 + // Allocate exactly length bytes so that we reliably catch
  26 + // buffer overflows.
  27 + std::vector<char> bytes(length);
  28 + in.read(bytes.data(), bytes.size());
  29 + assert(in);
  30 + LLVMFuzzerTestOneInput(
  31 + reinterpret_cast<unsigned char const*>(bytes.data()),
  32 + bytes.size());
  33 + std::cout << "Execution successful" << std::endl;
  34 + }
  35 + return 0;
  36 +}